2016-12-14 62 views
1

我正在使用jQuery DataTable 1.10.13。我正在將數據顯示爲服務器處理。目前我的數據表在底部顯示正確的分頁數,但所有數據都顯示在所有分頁頁面上。 [分頁顯示4頁。但所有4頁加載相同的數據。]dataTable服務器端處理分頁繪製

我在教程中看到他們正在傳遞一個名爲'draw'的模型變量。我怎麼弄到的?下面

是我的代碼

$('#userTable').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": { 
      "type": "GET", 
      "url": ", 
      "dataSrc": "data", 
      "contentType": "application/json; charset=utf-8", 
      "dataType": "json", 
      "processData": true 
     }, 
     "columns": [ 
      { "data": "id" }, 
      { "data": "email" }, 
      { "data": "company" }, 

     ] 
    }); 

,這是我的控制器低於

public function getUserList1() 
    { 
    $data = $this->user->getUserListData(); 
    echo json_encode($data); 
} 

是我的模型。

public function getUserListData() 
    { 

    $sql = 'SELECT * FROM users ORDER BY regdate DESC'; 
     $query = prepare($sql); 
     try { 
      $query->execute($params); 
      $data = $query->fetchAll(); 
      $total = $query->rowCount(); 
     } catch (PDOException $e) { 
      \debug::error('MySQL errno ' . $e->getCode() . ': "' . $e->getMessage() . '" when executing: ' . $query->queryString); 
     } 
     $response = array(
      "draw" => '', 
      "recordsTotal" => $total, 
      "recordsFiltered" => $total, 
      "data" => $users 
     ); 

     return $response; 

如何獲得「draw」=>的值?正確

"contentType": "application/json; charset=utf-8", 

而且你不執行服務器端的處理:

回答

0

,除非你從解碼JSON字符串請求參數刪除以下選項。您需要使用jQuery DataTables分發版中的ssp.class.php助手,或切換到客戶端處理模式。

要切換到客戶端的處理模式,刪除下列選項中你的JavaScript代碼:

"processing": true, 
"serverSide": true, 

在你的PHP代碼,只返回數據如下:

$response = array(
    "data" => $data 
); 

您的數據也在$data而不是$users

+0

陣列(大小= 4) '繪製'=>空 'recordsTotal'=> INT 28 'recordsFiltered'=> INT 28 '數據'=>我得到這個時候返回響應 –

+0

:DO我還必須在js文件上傳遞$ _REQUEST [「draw」]? –

+0

@Truruperera,你的代碼中有更多的錯誤,更新了我的答案。 –