Laravel Ajax работает нормально при перезагрузке страницы, но когда я использую Ajax, чтобы отфильтровать нумерацию данных с помощью jsscroll, не работает - PullRequest
0 голосов
/ 16 марта 2020

Пагинационные ссылки работают нормально, как обычные страницы, когда я обновляю sh всю страницу, но когда я перезагружаю только данные с ajax, нумерация страниц не загружает следующие страницы

  $.ajax({
         url: '{{route('apply.filters')}}',
         type:'get',
         data: {cities:cities,
             category:category
         },
         success: function (data) {
             // $(".contentlist").load(location.href + " .contentlist");
             $('.contentlist').html(data);
         },
         error: function(xhr, status, errorThrown) {
             console.log(xhr.responseText);
         }
     });

это моя функция контроллера

public function filter(Request $request)
{
     try {
     set_time_limit(390);
         $country=null;
         if(Auth::check() && $country==null){
             $country=Auth::user()->lat->country??'';
         }if(Session::has('country') && $country==null){
             $country=Session::get('country.0');
         }
        if(isset($request->cities)){
            $data =[
                'products' => Product::where([['category',$request->category],['country',$country??'']])->whereIn('city',$request->cities)->where('status',1)->Orderby('id','desc')->paginate(8),
            ];
        }
    if(isset($data)){
    return response()->json(view('front.home.ajaxindex',$data)->render());
    }else{
        return redirect()->route('home');
    }
     } catch(\Exception $e) {
        return back()->with('error',$e->getMessage());
    }
}

это моя функция jsscroll, которая работает нормально, но загрузка данных не идет с ajax

 $('ul.pagination').hide();
$(function() {
    $('.contentlist').jscroll({
        autoTrigger: true,
        loadingHtml: '<img class="center-block" src="{{asset('front_assets/images/Spinner-1s-200px.gif')}}" width="100" alt="Loading..." />', // MAKE SURE THAT YOU PUT THE CORRECT IMG PATH
        padding: 0,
        nextSelector: '.pagination li.active + li a',
        contentSelector: 'div.contentlist',
        loadOnScroll: false,
        callback: function() {
            $('ul.pagination').remove();
            $('.elements').each(function(){
                var thisH = $(this).height();
                if (thisH > maxHeight) {
                    maxHeight = thisH;
                }
                $(this).height(maxHeight);
            });

        }
    });
});

это моя страница ajaxindex это новая страница, созданная только для создания html который добавляется на главную страницу, если данные существуют

@foreach($products as $product)
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 item-cell">
                <div class="listingscontent elements">
                    @if(\Illuminate\Support\Facades\Auth::guard('admin')->check())
                        <i id="{{$imgs->id??''}}" onclick="deletes('{{$product->id}}',this)" class="fa fa-close fa-lg pull-right" style="margin-left: -20px; mix-blend-mode: hard-light; color: rgb(0, 255, 255); "></i>
                        <a style="    position: absolute;" class="pull-left" href="{{route('edit.add',['id' => preg_replace('/-{2,}/','-',str_replace([" ", "'", "/","(",")","@","#"], '-',$product->title??'')).'-'.$product->id??''])}}"> <i class="fa fa-pencil-square-o fa-lg" style="mix-blend-mode: hard-light; color: rgb(0, 255, 255); "></i></a>
                    @endif
                    <a style="color: #ea1b25" href="{{route('details',['id' => preg_replace('/-{2,}/','-',str_replace([" ", "'", "/","(",")","@","#"], '-',$product->title??'')).'-'.$product->id??''])}}">
                        @if(isset($product->atachedImage))
                            <img class="listings" src="{{asset($product->atachedImage->path.$product->atachedImage->name??'noimage.jpg')}}" title="{{$product->title??''}}_image" alt="">
                        @else
                            <img class="listings" src="{{asset('images/noimage.jpg')}}" title="{{$product->title??''}}_image">
                        @endif
                        <h5 class="text-capitalize title" title="{{$product->title??''}}">{{str_limit($product->title??'',19)}}</h5></a>
                                       </div>
            </div>
@endforeach

    {{$products->appends(request()->except('page'))->links()??''}}
...