2016-12-14 7 views
1

Я использую jquery DataTable 1.10.13. Я получаю данные в виде обработки серверов. в настоящее время в моей таблице данных показаны правильные номера разбиения на страницы внизу, но все данные показывают 4 страницы страниц. [pagination показывает 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» =>?

ответ

0

Удалить следующий параметр, если вы не декодирует параметры запроса из строки JSON:

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

Кроме того, вы не выполняя обработку на стороне сервера правильно. Вам необходимо использовать вспомогательный помощник ssp.class.php в дистрибутиве JQuery DataTables или переключиться в режим обработки на стороне клиента.

Для переключения в режим обработки на стороне клиента, удалить следующие параметры в коде JavaScript:

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

В вашем PHP кода, просто возвращает данные следующим образом:

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

Также Ваши данные находятся в $data не $users.

+0

массив (размер = 4) 'нарисовать' => нулевой 'recordsTotal' => Int 28 'recordsFiltered' => Int 28 = 'Данные'> я получаю это, когда я вернусь ответ –

+0

: сделайте Мне нужно передать $ _REQUEST ["draw"], также в файл js? –

+0

@Tharuperera, в вашем коде было несколько ошибок, обновлен мой ответ. –

Смежные вопросы