javascript - 如何在 php laravel 的第二页上保留过滤器选项?
问题描述
我想在我的页面上过滤我的用户表。我可以这样做,但仅限于第一页。当我单击第二页时,所有内容都会恢复为默认值,而它应该记住表单输入。这是我的代码:
我的 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>×</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);
}
我不知道故障是在我的页面还是在我的控制器中。谢谢阅读。
解决方案
您可以将参数附加到$users->links()
因此,您将使用类似{{ $users->appends(request()->except('page'))->links() }}
推荐阅读
- python - 使用 re 替换文件中的行
- docker - 开发容器:绑定用户?
- python - pyspark中的稀疏矩阵/ CSC矩阵
- r - 为什么在 Rmd 中找不到 readr::read_csv2() 命令?
- javascript - Toggle specific element when css class is used multiple times
- mysql - MySQL | Can not set UTC_TIMESTAMP after ON UPDATE
- swift - 为什么在 SwiftUI 中的动画过程中动画不使用 View 的主体更新自身?
- python - How to count and populate values from two different dataframe columns?
- python - Pandas merge, right file has more than one instance of the same key
- javascript - 以角度添加到嵌套数组