【发布时间】:2020-04-16 16:23:06
【问题描述】:
我是第一次使用 DataTables,但实际上将数据放入表中时遇到了问题。我相信我已经匹配了 DataTables 要求在其中使用 ajax 选项的正确 JSON 格式,但是在加载时我仍然收到“无效 JSON 响应”错误。
这是我的 JS,我将它放在 HTML 页面中调用的单独文件中:
$(document).ready(function () {
$("#copingTable").DataTable({
"ajax": {
"url": "overviewdata.php",
"type": "POST",
"dataType": "json",
"contentType": "application/json; charset=utf-8",
"dataSrc": "data"
},
"columns": [
{"data": "FormID"},
{"data": "SubmittedBy"},
{"data": "Email"},
{"data": "Date"}
]
});
});
还有我的 PHP:
$storiesSql = "SELECT FormID, CONCAT(FirstName, ' ', LastName) AS SubmittedBy, Email, DATE_FORMAT(Date, '%m/%d/%Y') AS Date FROM Stories";
$storiesStmt = $pdo->query($storiesSql);
$dataArray = array();
while($row = $storiesStmt->fetch()){
array_push($dataArray, array("FormID"=>$row['FormID'], "SubmittedBy"=>$row["SubmittedBy"], "Email"=>$row["Email"], "Date"=>$row['Date']));
}
echo json_encode(array("data"=>$dataArray));
这是我收到的 JSON 响应的格式(已编辑为正确):
{"data":[{"FormID":"5e9754efc8aec","SubmittedBy":"Test Test","Email":"adam.weissert@sru.edu","Date":"04\/15\/2020"}
任何帮助将不胜感激!
编辑:在工作代码中添加了映射数据源和下面答案中的列
【问题讨论】:
-
您确定您的 php 脚本返回的是 JSON 格式吗?
-
至少我是这么认为的,我是根据this 格式化它的方式来设计的
-
检查“网络”选项卡的“响应”部分以查看完整响应。也许在 JSON 之前或之后有一些 HTML 或错误消息。
-
我的意思是服务器端并确保它是 100% JSON 在输出之前添加
echo ...:header('Content-Type: application/json'); -
好的,所以使用标题代码这是我得到的格式:
[{"FormID":"5e9754efc8aec"},{"FormID":"5e985dc946c58"},{"FormID":"5e987e6d4ad0e"},{"FormID":"5e988564524cb"}]
标签: php jquery datatables