【问题标题】:DataTables Requested Unknown Parameter数据表请求未知参数
【发布时间】:2016-10-06 00:29:45
【问题描述】:

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

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\"}"]}

有什么想法吗?

【问题讨论】:

  • 使用{ "data": 0 }, { "data": 1}等有效吗?
  • 我以前试过。显然,所做的只是选择 JSON 字符串中的单个字符:0 是 '{',1 是 ",2 是 'd'......等等。

标签: datatables


【解决方案1】:

发现我的问题。这是一个非常微妙的 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() 调用,它就会递归地对数组中的数组进行编码。

【讨论】:

    猜你喜欢
    • 2014-04-03
    • 1970-01-01
    • 2014-09-16
    • 2015-03-16
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多