0

我不断收到此错误警报 =“DataTables 警告(表 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"]]}'
}
4

1 回答 1

0

来自 Datatables.net 的这种错误通常意味着您指定的标题/列与从服务器返回的 JSON 不匹配。

但是,在您的情况下,JSON 的每个“行”中似乎正确地有 10 个和 10 个项目。

这让我认为JSON 格式不正确,或者DataTables 无法处理其中的某些部分。

我建议你打开fiddler检查它实际上在客户端上的响应,我不太了解 php,所以不确定该回显将如何实际出现在客户端上。但当然认为你应该编码和设置标题,例如

从 PHP 脚本返回 JSON

您可以将该提琴手输出复制到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 正常工作 - 太棒了!

于 2012-10-20T06:28:03.350 回答