我一直收到此错误警告=“DataTables warning(table id ='msnc_table'):从第0行的数据源请求未知参数'1'”
以下是我的代码片段:
HTML:
<table id="msnc_table" class="dataTable">
<thead>
<tr>
<th>Doc#</th>
<th>Date</th>
<th>Code</th>
<th>Customer Name</th>
<th>S/m</th>
<th>Gross</th>
<th>Disc</th>
<th>Net</th>
<th>S.Disct</th>
<th>Invc</th>
</tr>
</thead>
<tbody>
<tr>
<td class="dataTables_empty">Loading data from server</td>
</tr>
</tbody>
</table>
JS
var msnc_table = $('#msnc_table').dataTable({
"bProcessing": true,
"bServerSide": true,
"iDisplayStart": 0,
"iDisplayLength": 11,
"sAjaxSource": base_url+"raw/raw_ajax/get_mnsc",
"bRetrieve": true
});
PHP函数
function get_mnsc()
{
echo '{"sEcho":"2","iTotalRecords":20,"iTotalDisplayRecords":20,"aaData": [["232412","12\/8\/2012","DSDA2312","Alfonso supermarket","213","231213","21312","2313","2313","2312432\r\n"],["232412","12\/8\/2012","ADS332","MCL Store","213","231213","21312","2313","2313","2312432\r\n"]]}'
}
答案 0 :(得分:0)
来自Datatables.net的这种错误通常意味着您指定的标头/列与从服务器返回的JSON之间存在不匹配。
然而,在你的情况下,似乎在JSON的每一行中都有正确的10和10项。
这让我觉得 JSON格式不正确,或 DataTables无法处理部分内容。
我建议你打开 fiddler 并检查响应,因为它实际上在客户端,我不知道多少php ,所以不确定该回声将如何实际出现在客户端上。但当然认为你应该编码并设置标题,例如
Returning JSON from a PHP Script
您可以将该fiddler输出复制到http://jsonformatter.curiousconcept.com/或http://jsonlint.com/ 验证它。
可能是你的日期,在斜线之前看起来像逃脱字符?,正在弄乱它。注:我的日期被退回,例如
"31/07/2005",
可能是JSON中出现错误位置的换行符会弄乱它?
"2312432\r\n"]
建议您完全删除它们并查看它是否有效,或者在引号之后放置中断,还是在方括号关闭后?
"2312432"\r\n]
"2312432"]\r\n
不确定,但肯定按照链接修改php,并使用fiddler检查实际响应,如果你仍然有问题。
如果您仍然遇到问题,请在此处查看答案..可能会有所帮助https://stackoverflow.com/a/11475749/661584
祝你好运!值得让Datatables.net工作 - 它很棒!