0
votes

I use yajra data tables for server-side datatables with collection. When I load the page the first time, data comes in. But when I click on next page or page >1 no data is available. I use limit and offset in my query. My controller is this

 public function getorderslist(Request $request)
  { 
      $requestData = $request->all(); /////all request data.
      $finalArrary = $this->orderlistfunction($request);
        $allordersData = new Collection($finalArrary['finalArrary']);
       $totalrecords = $finalArrary['totalrecords'];


      return Datatables::of($allordersData)->with(['recordsTotal'=>$totalrecords ,'recordsFiltered'=> $totalrecords])->make(true);
  }

I have seen the console that gets data, but not embedded in the data-tables data index. This my Javascript(jQuery) code:

var oTable = $('#orders-table').DataTable({ processing: true, serverSide: true, ajax: {

      url: SITE_URL+'filterfetch/orders',

      data: function (d) 
      {
          d.orderstatus ='pending';
           // d.length =100;
          //d.event_id=$('input[name=event_id]').val();
          var dt_params = $('#orders-table').data('dt_params');
          // Add dynamic parameters to the data object sent to the server
          if(dt_params)
          { 
            //alert(dt_params);
            $.extend(d, dt_params); 
          }
      }
    },
    "order": [[ 1, "desc" ]],

    columns: [
        { data: 'date', name: 'date' },
        { data: 'eventname', name: 'eventname' },
        { data: 'orderid', name: 'orderid' },
        { data: 'attempts', name: 'attempts' },
        { data: 'name', name: 'name' },
        { data: 'email', name: 'email' },
        { data: 'mobile', name: 'mobile' },
        { data: 'quantity', name: 'quantity' },
        { data: 'amount', name: 'amount' },
        { data: 'action', name: 'action' },
        { data: 'called', name: 'called' }

    ]
});
1

1 Answers

0
votes

Try this Code :

var oTable = $('#orders-table').DataTable({            
    dom: "<'row'<'col-xs-12'<'col-xs-6'l><'col-xsvalidation-6'p>>r>" +
            "<'row'<'col-xs-12't>>" +
            "<'row'<'col-xs-12'<'col-xs-6'i><'col-xs-6'p>>>",
    processing: true,
    serverSide: true,
    pageLength: 25,
    order: [[0, "desc"]],
    ajax: {
        url: SITE_URL+'filterfetch/orders',
        data: function (d) {
            //d.name = $('input[name=name]').val();
        }
    },
    columns: [
        { data: 'date', name: 'date' },
        { data: 'eventname', name: 'eventname' },
        { data: 'orderid', name: 'orderid' },
        { data: 'attempts', name: 'attempts' },
        { data: 'name', name: 'name' },
        { data: 'email', name: 'email' },
        { data: 'mobile', name: 'mobile' },
        { data: 'quantity', name: 'quantity' },
        { data: 'amount', name: 'amount' },
        { data: 'action', name: 'action' },
        { data: 'called', name: 'called' }
    ],
    aoColumnDefs: [{'bSortable': false, 'aTargets': [1, 2, 3, 4]}]
});