У меня есть список проектов, отображаемых в таблице с нумерацией страниц внизу с использованием разбивки на страницы laravel.
$projects = projects::where('active', '=', 1)->orderBy('id', 'desc')->paginate(15);
return view('index', compact('projects'));
У меня также есть живой поиск, чтобы отфильтровать проекты по имени, используя ajax.
public function search(Request $request){
if($request->ajax()){
$query = $request->get('query');
if($query != ''){
$data = DB::table('projects')
->where('active', '=', 1)
->whereNull('deleted_at')
->where('name', 'like', '%'.$query.'%')
->get();
}else{
$data = DB::table('projects')->where('active', '=', 1)->whereNull('deleted_at')->orderBy('id', 'desc')->get();
}
}
return response($data->jsonSerialize(), Response::HTTP_OK);
}
Js:
searchProjects = function(query){
$.ajax({
url: "/projects/search",
type: "POST",
data: {
query: query,
},
success: function (response){
displayData(response);
}
})
},
Итак, сначала я загружаю проекты через серверную часть, а затем, если я выполняю поиск, данные заменяются на результат через ajax.
Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я выполняю поиск, нумерация страниц не обновляется.Допустим, в результате поиска отображается 5 результатов, я хочу, чтобы нумерация страниц изменялась с 1-2 на 1-1, или даже просто исчезала (если это имеет смысл), если результатов меньше 15 (например).
Кто-нибудь знает, как я бы совмещал поиск в реальном времени и пагинацию, которые работают вместе на laravel?