2017-10-06 109 views
1

我有一個datatables實現,它執行ajax請求$_SERVER['PHP_SELF']。我運行我的查詢來獲取頁面加載時的所有記錄。但是,第一次Ajax調用將再次無限制地執行此操作。我想知道是否有可能在最初的ajax請求中傳遞總行數。這是我的數據表代碼:將總行數傳遞給數據表

var myTable = $('.datatable').DataTable({ 
    "serverSide": true, 
    "processing": true, 
    "paging": true, 
    "searching": { "regex": true }, 
    "lengthMenu": [ [10, 25, 50, 100, -1], [10, 25, 50, 100, "All"] ], 
    "pageLength": 10, 
    "ajax": { 
     "type": "POST", 
     "url": "<?= $_SERVER['PHP_SELF']; ?>", 
     "dataType": "json", 
     "contentType": 'application/json; charset=utf-8', 
     "data": function (data) { 
      // Grab form values containing user options 
      var form = {}; 
      $.each($("form").serializeArray(), function (i, field) { 
       form[field.name] = field.value || ""; 
      }); 
      // Add options used by Datatables 
      var info = { "start": 0, "length": 10, "draw": 1 }; 
      $.extend(form, info); 
      return JSON.stringify(form); 
     }, 
     "complete": function(response) { 
      console.log(response); 
     } 
    } 
}); 
+0

帶此'「url」:「<?= $ _SERVER ['PHP_SELF'];?>」'您很可能得不到合理的迴應。應該是一個單獨的PHP。 – Jeff

+0

@Jeff我檢查請求是否是ajax,並相應地返回適當的值。 – Peter

回答

1

我找到了解決方案,我的問題似乎是多個問題。

  1. 我有錯誤值recordsTotal認爲它應該是行的,我想在我的AJAX調用來檢索量。

  2. "contentType": 'application/json; charset=utf-8',似乎打破了我的ajax請求。

    「數據」:{ 「totalRows」: 「」, }

  3. 我現在使用通過行的總數,

  4. 現在我最初使用上的計數設置$totalData我查詢結果,然後用$_REQUEST覆蓋它。