我如何在php laravel的第二页中保留过滤器选项?

问题描述 投票:1回答:1

我想过滤我的页面上的用户表。我可以这样做,但仅限第一页。当我单击第二页时,所有内容都恢复为默认值,同时它应该记住表单输入。这是我的代码:

我的PHP页面:

    <h1>users</h1>

    {{--message voor als een user wordt aangepast. Forget en save zorgen ervoor dat de message niet heel de tijd opnieuw wordt getoond--}}
    @if(Session::has('flash_message'))
        <div id="editmessage" class="alert alert-success">
            {{ Session::get('flash_message') }}
            {{ Session::forget('flash_message') }}
            {{ Session::save() }}
        </div>
    @endif

    <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" {{ request()->name }} value="name">Name</option>
                    <option class="genrekeuze" {{ request()->email }} 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>
    <hr>

        {{--Wordt alleen getoond als er geen users zijn (zie script_after)--}}
        <div style="display: none;" id="errormessage" class="alert alert-danger alert-dismissible fade show">
            Can't find any users
            <button type="button" class="close" data-dismiss="alert">
                <span>&times;</span>
            </button>
        </div>




    {{ $users->links() }}

    <div class="table-responsive">
        <table class="table">
            <thead>
            <tr>
                <th>#</th>
                <th>user</th>
                <th>E-mail</th>
                <th>active / admin</th>
                <th>Actions</th>
            </tr>
            </thead>
            <tbody id="usertable">

                @foreach ($users as $user)

                    <tr>
                        <td data-id="{{$user->id}}">{{$user->id}}</td>
                        <td data-name="{{$user->name}}">{{$user->name}}</td>
                        <td data-mail="{{$user->email}}">{{$user->email}}</td>

                        @if ($user->active==0 && $user->admin==0)
                            <td>NO / NO</td>
                        @endif
                        @if ($user->active==1 && $user->admin==1)
                            <td>YES / YES</td>
                        @endif
                        @if ($user->active==0 && $user->admin==1)
                            <td>NO / YES</td>
                        @endif
                        @if ($user->active==1 && $user->admin==0)
                            <td>YES / NO</td>
                        @endif

                        {{--edit en delete buttons verwijderen voor admin--}}
                        @if($user->id!=1)
                        <td>
                        <div class="btn-group btn-group-sm">

                            <a href="/admin/users/{{$user->id}}/edit" class="btn btn-outline-success btn-edit"
                               data-toggle="tooltip" data-name="{{$user->name}}" title="Edit {{$user->name}}"><i class="fas fa-edit"></i></a>


                            <a href="#!" class="btn btn-outline-danger btn-delete"
                               data-toggle="tooltip" data-id="{{$user->id}}" data-name="{{$user->name}}" title="Delete {{$user->name}}">
                                <i class="fas fa-trash"></i>
                            </a>
                        </div>
                        </td>
                        @endif

                    </tr>

                @endforeach


            </tbody>
        </table>
    </div>
@endsection

我的控制器:

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(15);


        $result = compact('users');

        Json::dump($result);

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

我不知道故障是在我的页面还是在控制器中。感谢您的阅读。

javascript php html laravel
1个回答
0
投票

您可以将参数附加到$users->links()因此,您将使用类似{{ $users->appends(request()->except('page'))->links() }}

的名称

参考:https://github.com/laravel/framework/issues/19441

© www.soinside.com 2019 - 2024. All rights reserved.