我正在尝试将php数组发送到JS Datatable库。
我正在使用以下示例: https://datatables.net/examples/server_side/simple.html
但是,由于我只是在测试功能,所以我没有从数据库中获取数据。
所以这基本上是我的php代码:
$data_fmt['data'][] = array("TEST");
echo json_encode( $data_fmt );
哪个给出的数组如下:
{
"data": [
["TEST"]
]
}
现在,在Ajax / JS端,我有以下代码:
$('#my_dt_table').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "my_php_script.php"
} );
在HTML中,我有:
<table id='my_dt_table' class='display' style='width:100%'>
<thead>
<tr>
<th>Column Title</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Column Title</th>
</tr>
</tfoot>
</table>
尽管JSON是正确的,但我遇到以下错误:
DataTables警告:表id = my_dt_table-无效的JSON响应。有关此错误的更多信息,请参见http://datatables.net/tn/1
我做错了什么?
谢谢
答案 0 :(得分:0)
如果返回JSON,请同时添加JSON标头,并确保在echo json_encode()
之前和之后都没有输出任何内容。
尝试类似的事情:
<?php
$data = [
'data' => [ [ 'TEST' ] ]
];
header('Content-Type: application/json');
echo json_encode($data);
然后使用某些工具,或浏览器内置的开发人员工具或Postman之类的扩展程序,发送GET请求并获取该文件,以验证您的文件返回了正确的JSON响应。
答案 1 :(得分:0)
更改服务器端脚本
<?php
header('Content-Type: application/json');
$data=array();
$data[] =array("TEST");//a row
$data[] =array("TEST 1");//a row with single colum
$data[] =array("TEST 2",'TEST 3');//a row double colum you can add more
print_r(json_encode(array('data'=>$data)));