我已经研究过我所能做的一切。我仍然遇到可怕的错误
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\"}"]}
有什么想法吗?
答案 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()调用,它将在数组内递归编码数组。