vandan's avatar
Level 13

laravel pagination not working after ajax call

hii i used laravel pagination but when i filter data means ajax call then laravel pagination not working properly how manage this

here my controller file

public function index()
{
		$events = Event::paginate('9');
        return view('event.index',compact('events'));       
}

//ajax filter	
public function advancefilter(Request $request)
{
    	$html = '';
    	$Array = [];
    	$date = now();

    	if($request->ajax()){
        	$event = Event::select('*');
        	if($request->all() == NULL){
            	$event = Event::all();
        	}else{
            	if($request->search != NULL){
                	$event->where('event_name','LIKE','%'.$request->search."%");
            	}
            	if($request->start != NULL && $request->end != NULL){
                	$event->whereBetween('event_date',array($request->start, $request->end));
            	}
            	if($request->status == 'upcoming'){
                	$event->whereDate('event_date','>=', Carbon::now());
            	}	
            	if($request->status == 'completed'){
                	$event->whereDate('event_date','<=', Carbon::now());
            	}
            	if($request->status == 'all'){
                	$event;
            	}
        	}
        	$event = $event->paginate('9');
        	if($event){
            	foreach($event as $list){
                	$html = view('event.partials.eventbox', compact('list'))->render();
               	 	array_push($Array, $html);
            	}
            	return response()->json(['html' => $Array]);
        	}
    	}
	}

here is my blade file

<div class="pagination">
            {{ $events->links() }}
</div>

	function getData() {
    		var start = $("#start").val();
    		var end = $("#end").val();
    		var search = $("#search").val();
    		var status = $("#eventStatus").val();

    		$.ajax({
        		url: '{{url('/event/advancefilter')}}',
        		type: 'GET',
        		data: {'start': start, 'end': end, 'search': search, 'status': status},
        		success: function(response){
            		console.log(response.html);
            		$("#mainCard").empty();
            		$("#mainCard").append(response.html);
        		}
    		});
		}
0 likes
1 reply

Please or to participate in this conversation.