DataTables请求未知参数

时间:2016-10-06 00:29:46

标签: datatables

我已经研究过我所能做的一切。我仍然遇到可怕的错误

Requested the unknown parameter 'title' for row 0, column 0

对于我的index.html中嵌入的以下代码:

$("#cd-table").DataTable({
  "render": { "_": "plain", "filter": "filter", "display": "display"},
  "ajax" : { "url" : "cdsort.php", "dataSrc" : "array1" },
  "columns" : [ { "data": "title" }, { "data": "description" }, { "data": "location" }, { "data": "date" } ]
}); 

服务器JSON响应应该是正确的(未解码):

{"array1":["  {\"title\":\"test\",\"description\":\"test\",\"location\":\"test\",\"date\":\"05\\\/Oct\\\/2016\"}"]}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

发现我的问题。这是一个非常微妙的PHP错误(对我而言)。

在组装我的JSON对象数组时,我正在使用此语句(在for循环中):

array_push($cd_json, json_encode(array("title" => $cd_row[0], "description" => $cd_row[1], "location" => $cd_row[2], "date" => $date_time)));

后来,当我将JSON数组返回给客户端时,我正在使用它:

echo json_encode(array("data" => $cd_json));

错误是在之前的json_encode之上使用json_encode,有效地破坏了我的数组的JSON数据类型。

当我这样做时,DataTables理解我的数据,并且格式正确:

array_push($cd_json, array("title" => $cd_row[0], "description" => $cd_row[1], "location" => $cd_row[2], "date" => $date_time));

echo json_encode(array("data" => $cd_json));

获得的经验:只需使用一个json_encode()调用,它将在数组内递归编码数组。