javascript - 我如何记住 php laravel 中的下拉值?

标签 javascript php jquery laravel

我正在尝试为我的页面创建一个过滤器,并且我想记住表单值。我已经尝试过 laravel 的 old() 函数和其他一些东西,但是没有用。也许我做错了什么。这是我的代码:

Blade .php:

<form method="get" action="/admin/users" id="searchForm">
        <div class="row">
            <div class="col-sm-4 mb-2 lg-4">
                <input type="text" class="form-control" name="name" id="name"
                       value="{{ request()->name }}" placeholder="Filter user by name or email">
            </div>
            <div class="col-sm-4 mb-2 lg-4">

                <select class="form-control" name="userfilter" id="userfilter">
                    <option class="genrekeuze" value="id">Sort By ID (default)</option>
                    <option class="genrekeuze" value="name">Name</option>
                    <option class="genrekeuze" value="email">email</option>
                    <option class="genrekeuze" value="active">active</option>
                    <option class="genrekeuze" value="admin">admin</option>
                </select>

            </div>
            <div class="col-sm-4 mb-2 lg-4">

                <select class="form-control" name="direction" id="direction">

                    <option id="richtingboven" class="genrekeuze" value="asc" >ascending</option>

                    <option id="richtingonder" class="genrekeuze" value="desc">descending</option>

                </select>

            </div>
            <div class="col-sm-2 mb-2">
                <button style="display: inline;" type="submit" class="btn btn-success btn-block">Search</button>
            </div>
        </div>
    </form>

这是我的 Controller :

public function index(Request $request)
    {

        //vraag input van zoekbalk en option list
        $zoeknaam = '%' . $request->input('name') . '%';
        $vallist=$request->input('userfilter','id');
        $direction=$request->input('direction','asc');

        //users uit database halen, paginate en where functie voor filteren
        $users = User::where('name', 'like', $zoeknaam)
            ->orWhere('email', 'like', $zoeknaam)
            ->orderBy($vallist,$direction)
            ->paginate(10);


        $result = compact('users');

        Json::dump($result);

        //naar view met data
        return view('admin.users.users', $result);
    }

输入似乎会自动记住它的值,但 2 个下拉菜单(#userfilter 和 #direction)不会。如果有人知道解决方案,请随时发表评论。

感谢阅读!

最佳答案

设置 select 标签的值实际上不会设置选项。这样做

<select name="myselect" value="{{old('myselect')}}`">

不会工作。该选项需要具有 selected 属性才能被选中,因此您需要将 selected 属性添加到其值与 old()< 匹配的选项 值。我来演示一下。

<select class="form-control" name="userfilter" id="userfilter">
    <option class="genrekeuze" value="id" @if(old('userfilter')=='id') selected @endif>Sort By ID (default)</option>
    <option class="genrekeuze" value="name" @if(old('userfilter')=='name') selected @endif>Name</option>
    <option class="genrekeuze" value="email" @if(old('userfilter')=='email') selected @endif>email</option>
    <option class="genrekeuze" value="active" @if(old('userfilter')=='active') selected @endif>active</option>
    <option class="genrekeuze" value="admin" @if(old('userfilter')=='admin') selected @endif>admin</option>
</select>

同理,对于方向

<select class="form-control" name="direction" id="direction">
    <option id="richtingboven" class="genrekeuze" value="asc" @if(old('direction')=='asc') selected @endif>ascending</option>
    <option id="richtingonder" class="genrekeuze" value="desc" @if(old('direction')=='desc') selected @endif>descending</option>
</select>

关于javascript - 我如何记住 php laravel 中的下拉值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59513557/

相关文章:

php - 查询未执行

javascript - 禁用和启用带有计数器和过渡效果的点击事件

javascript - 页面加载时根据其内容更改元素的外观和功能(AngularJS)

javascript - Javafx:如何定位场景的元素

javascript - 每个图像的新页面?

JavaScript:缓存深度嵌套的变量是否更快?

php - 动态 SVG 图像生成问题

php - jQuery 'Galleria' randomon 停止加载

javascript - 检测和响应任何多边形内的球与墙碰撞

javascript - 如何防止子 div 在动画期间隐藏。?