Level 13
??
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);
}
});
}
Please or to participate in this conversation.