[英]Requested unknown parameter 'name' for row 0, column 0 ajax in the datatable
我无法使用Ajax显示数据,但出现错误:
请求第0行第0列的未知参数“名称”
的HTML
<table id="datatable">
<thead>
<tr>
<td>Name</td>
<td>Surname</td>
</tr>
</thead>
</table>
的PHP
header('Content-Type: application/json; charset=utf-8');
$columns = '{"data": [';
$columns .= '{"name": "1234567890", "surname": "test"}, ';
$columns .= '{"name": "8200469963", "surname": "amit"}';
$columns .= ']}';
die(json_encode($columns));
的JavaScript
$(document).ready(function() {
$('#datatable').DataTable({
"responsive": true,
"processing" : true ,
"serverSide" : true ,
"ajax": {
type: 'POST',
url: "data.php",
dataType: 'json',
dataSrc: ""
},
"columns": [
{ "data": "name" },
{ "data": "surname" }
]
});
});
您的代码有几个问题:
serverSide: true
和serverSide: true
dataSrc: ""
用于您的响应结构。 使用以下PHP脚本作为模板:
<?php
header('Content-Type: application/json; charset=utf-8');
$data = [
'data' => [
[
'name' => '1234567890',
'surname' => 'test'
],
[
'name' => '8200469963',
'surname' => 'amit'
],
]
];
echo json_encode($data);
使用以下初始化选项:
$(document).ready(function() {
$('#datatable').DataTable({
"responsive": true,
"ajax": {
type: "POST",
url: "data.php"
},
"columns": [
{ "data": "name" },
{ "data": "surname" }
]
});
});
您的PHP代码有两个问题:
您的$columns
变量是一个字符串,您尝试将其编码为JSON-完全不会产生您期望的结果。 您应该将其创建为对象,然后进行编码:
$columns = ["data" => [ ["name" => "1234567890", "surname" => "test"], ["name" => "8200469963", "surname" => "amit"] ]];
不要使用die
这可能会对服务器端造成不良影响。 使用echo
代替:
echo json_encode($columns);
因此,从整体上看,您的PHP代码将是:
header('Content-Type: application/json; charset=utf-8');
$columns = ["data" => [
["name" => "1234567890", "surname" => "test"],
["name" => "8200469963", "surname" => "amit"]
]];
echo json_encode($columns);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.