2015-09-18 3 views
1

Я пытаюсь использовать jQuery DataTables с серверным PHP с использованием AJAX.Запрашиваемый неизвестный параметр '0' для строки 0

Мой Ajax вызов просто:

$(document).ready(function() { 
    $("#dataTable").DataTable({ 
     serverSide: true, 
     ajax: "systemlog/loadData", 
    }); 
}); 

А вот мой PHP код:

 $logList = \Models\SysLog::all($where, $fields, $order, $direction); 

     $data = array(); 

     foreach ($logList as $sysLog) 
     { 
      $data[] = array("logDateTime" => $sysLog->logDateTime, 
          "logType" => $sysLog->logType, 
          "source" => $sysLog->source, 
          "user" => $sysLog->user, 
          "message" => $sysLog->message); 
     } 

     $retData = array (
       "draw" => $draw, 
       "recordsTotal" => count($sysLogList), 
       "recordsFiltered" => count($sysLogList), 
       "data" => $data 
       ); 

     $result = json_encode($retData); 

     echo $result; 

И мой вернулся JSON, как:

{"draw":"1","recordsTotal":30,"recordsFiltered":30,"data":[{"logDateTime":0,"logType":"INFO","source":"sys","user":"sys","message":"Program start."},{"logDateTime":0,"logType":"INFO","source":"sys","user":"sys","message":"Starting handler."},{"logDateTime":0,"logType":"INFO","source":"sys","user":"sys","message":"Starting persistance updater."}]} 

Все сделано, но я Получает следующую ошибку из DataTables на стороне клиента:

DataTables предупреждение: таблица ID = DataTable - Запрошенный неизвестный параметр '0' для строки 0.

Никакие данные не отображаются на экране.

+0

Возможный дубликат [предупреждения DataTables: Запрошенный неизвестный параметр '0' из источника данных для строки '0'] (http://stackoverflow.com/questions/16539578/datatables -warning запрошенного неизвестный параметр-0-из-самого источника данных в обмен на ряд) –

ответ

1

При использовании в качестве источника данных Objects вам необходимо использовать опции columns.data, чтобы определить, какое свойство соответствует тому столбцу.

Например:

$("#dataTable").DataTable({ 
    serverSide: true, 
    ajax: "systemlog/loadData", 
    columns: [ 
     { data: "logDateTime" }, 
     { data: "logType" }, 
     { data: "source" }, 
     { data: "user" }, 
     { data: "message" } 
    ] 
}); 
Смежные вопросы