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


Ответы (0 шт):