Laravel сортировка на ajax + пагинация
Я написал сортировку на ajax. Теперь мне к ней надо приделать пагинацию, но я столкнулся с проблемой, что при использовании onchange(), сбрасывается сортировка при переходе на др. страницу пагинации. Но если делать через <button type="submit"></button> сортировка сохраняется, но уже не работает ajax.
Форма
<form action="{{route('sortBy')}}" method="get">
<div class="sortBy">
<div class="select">
<select name="val" id="val" onchange="SortBy()">
<option selected disabled value="default">По умолчанию</option>
<option value="smallerPrice">По возрастанию цены</option>
<option value="biggerPrice">По убыванию цены</option>
<option value="firstA">По названию(a-я)</option>
<option value="firstZ">По названию(я-а)</option>
</select>
</div>
</div>
<!-- -->
</form>
ajax
let val = $('#val option:selected').val();
$.ajax({
url: '{{ route('sortBy') }}',
type: "get",
data: {
val: val,
},
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function (data) {
$('.allCard').html(data)
}
});
Сортирвока
if ($request['val'] == "smallerPrice")
$this->allTov = $tovar->orderBy("Price", "asc")->paginate($this->pag)->withPath("?".$request->getQueryString());
else if ($request['val'] == "biggerPrice")
$this->allTov = $tovar->orderBy("Price", "desc")->paginate($this->pag)->withPath("?".$request->getQueryString());
else if ($request['val'] == "firstA")
$this->allTov = $tovar->orderBy("Name", "asc")->paginate($this->pag)->withPath("?".$request->getQueryString());
else if ($request['val'] == "firstZ")
$this->allTov = $tovar->orderBy("Name", "desc")->paginate($this->pag)->withPath("?".$request->getQueryString());
else {
$this->allTov = $tovar->orderBy("Name", "asc")->paginate($this->pag)->withPath("?".$request->getQueryString());
return view('ajax.orderBy', [
'allTov' => $this->allTov
])->render();
Я так понял, что этим способом в url страницы нет GET параметра, поэтому пагинация работает не корректно, но мне нужно сделать сортировку через ajax