数据表中的sAjaxSource返回错误

时间:2012-08-24 02:52:51

标签: jquery datatable

我一直收到此错误警告=“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"]]}'
}

1 个答案:

答案 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工作 - 它很棒!