首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何记住php laravel中的下拉值?

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

Stack Overflow用户
提问于 2019-12-29 02:07:41
回答 1查看 147关注 0票数 1

我正在尝试为我的页面创建一个过滤器,并且我想记住表单值。我尝试了laravel中的old()函数和其他一些方法,但都不起作用。也许我做错了什么。下面是我的代码:

blade.php:

代码语言:javascript
复制
<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>

这是我的控制器:

代码语言:javascript
复制
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);
    }

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

感谢您的阅读!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-29 02:18:49

设置select标记的值实际上不会设置该选项。这么做吧

代码语言:javascript
复制
<select name="myselect" value="{{old('myselect')}}`">

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

代码语言:javascript
复制
<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>

类似地,对于方向

代码语言:javascript
复制
<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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59513557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档