2016-12-14 59 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,你的代码中有更多的错误,更新了我的答案。 –