2016-11-17 16 views
0

我試圖將database中的數據(在兩個日期之間)列入data tables,並通過ajax列出。但是數據表顯示了一些警告信息。Datatable在使用ajax從數據庫中提取數據時顯示一些警告

我使用laraveljquery

數據表警告:表ID = callListDatatable - 請求的未知參數 '0' 0行,列0。有關此錯誤的詳細信息,請參閱http://datatables.net/tn/4`

我的控制檯預覽顯示

[{ 
    "call_from": "4915739463158", 
    "call_to": "4994156959988", 
    "direction": "in", 
    "answered_by": "voicemail_msg2", 
    "called_at": "2016-11-17 18:04:55", 
    "answered_at": null, 
    "hungup_at": null, 
    "duration_ring": "00:00:00", 
    "duration_call": "00:00:00" 
}, { 
    "call_from": "49718280230", 
    "call_to": "4994156959988", 
    "direction": "in", 
    "answered_by": "voicemail_msg1", 
    "called_at": "2016-11-17 08:09:26", 
    "answered_at": null, 
    "hungup_at": null, 
    "duration_ring": "00:00:00", 
    "duration_call": "00:00:00" 
}, { 
    "call_from": "491743078107", 
    "call_to": "4994156959982", 
    "direction": "in", 
    "answered_by": "Andreas Hauzenberger", 
    "called_at": "2016-11-17 09:16:14", 
    "answered_at": "2016-11-17 09:16:37", 
    "hungup_at": "2016-11-09 09:17:53", 
    "duration_ring": "00:00:23", 
    "duration_call": "00:01:16" 
}] 

我不知道會發生什麼。請幫我解決這個問題。

這是我的jquery代碼

//Data table 
     $('#callListDatatable').DataTable({ 
      "scrollX": true, 
      "lengthMenu": [[100, 250, 500, 1000, -1], [100, 250, 500, 1000, "All"]], 
      "order": [[ 4, "desc" ]], 
      "language": { 
       "sEmptyTable":  "Keine Daten in der Tabelle vorhanden", 
       "sInfo":   "_START_ bis _END_ von _TOTAL_ Einträgen", 
       "sInfoEmpty":  "0 bis 0 von 0 Einträgen", 
       "sInfoFiltered": "(gefiltert von _MAX_ Einträgen)", 
       "sInfoPostFix":  "", 
       "sInfoThousands": ".", 
       "sLengthMenu":  "_MENU_ Einträge anzeigen", 
       "sLoadingRecords": "Wird geladen...", 
       "sProcessing":  "Bitte warten...", 
       "sSearch":   "Suchen", 
       "sZeroRecords":  "Keine Einträge vorhanden.", 
       "oPaginate": { 
        "sFirst":  "Erste", 
        "sPrevious": "Zurück", 
        "sNext":  "Nächste", 
        "sLast":  "Letzte" 
       }, 
       "oAria": { 
        "sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren", 
        "sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren" 
       } 
      } 
     }).columns().every(function() { 
      var that = this; 

      $('input', this.footer()).on('keyup change', function() { 
       if (that.search() !== this.value) { 
        that 
          .search(this.value) 
          .draw(); 
       } 
      }); 
     }); 
     /*Data Tables functionality End*/ 

     /* Date range functionality begin */ 
     $('#reportrange').daterangepicker({ 
      /*autoUpdateInput: false,*/ 
      ranges: { 
       'Last 7 Days': [moment().subtract(7, 'days'), moment()], 
       'Last 30 Days': [moment().subtract(30, 'days'), moment()], 
       'This Month': [moment().startOf('month'), moment().endOf('month')], 
       'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] 
      }, 
      locale: { 
       format: 'DD.MM.YYYY' 
      } 
     }); 

     $('#reportrange').on('apply.daterangepicker', function(ev, picker) { 
      $(this).val(picker.startDate.format('DD.MM.YYYY') + '-' + picker.endDate.format('DD.MM.YYYY')); 
      var data  = $(".reportrange").val(); 
      var daterange = data.replace(/\s/g, ''); 
      /*$.getJSON('/call/list/daterange', {date: daterange }, function (json) { 
       $('#callListDatatable').dataTable().fnClearTable(); 
       $('#callListDatatable').dataTable().fnAddData(json); 
      });*/ 
      $.ajax({ 
       type: "POST", 
       dataType: "json", 
       url: '/call/list/daterange', 
       data: {date: daterange }, 
       success : function(data){ 
        console.log(data); 
        $(data).each(function(key, value){ 
         $('#callListDatatable').dataTable().fnClearTable(); 
         $('#callListDatatable').dataTable().fnAddData(value) 
        }); 
       } 
      }); 
     }); 

這是我的控制器代碼

public function show(Request $request) 
    { 
     /*dd($request->all());*/ 
     $dateExplode  = explode("-", $request->date); 
     $dateBegin  = date('Y-m-d 00:00:00', strtotime($dateExplode[0])); 
     $dateEnd   = date('Y-m-d 23:59:00', strtotime($dateExplode[1])); 
     $calls   = Call::select('call_from', 'call_to', 'direction', 'answered_by', 'called_at', 'answered_at', 'hungup_at', 'duration_ring', 'duration_call') 
      ->whereBetween('called_at', [$dateBegin, $dateEnd]) 
      ->get(); 
     return json_encode($calls); 
    } 
+0

這表明你的錯誤在哪裏可以找到什麼?你檢查https://datatables.net/manual/tech-notes/4 –

回答

0

問題的選擇器,使用ID而不是類。

var data  = $(".reportrange").val(); 

改變這

var data  = $("#reportrange").val(); 
+0

在我的HTML我有class也是''。已經得到迴應,我在我的問題中提到了這些事情。 –

+0

從錯誤中清楚地知道,選擇查詢以「0」作爲輸入。你可以打印,看看什麼是「$ dateBegin,$ dateEnd」 –

+0

@ Srinivas B $ dateBegin,$ dateEnd越來越和在我的螢火蟲控制檯顯示我的問題中已列出的響應。 –

相關問題