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 がその一部を処理できないと思われます。

フィドラーを開き、実際に clientにある応答を調べることをお勧めします。私はphpをあまり知らないので、そのエコーが実際にクライアントにどのように表示されるかはわかりません。ただし、ヘッダーをエンコードして設定する必要があると考えてください。

PHP スクリプトから JSON を返す

そのフィドラー出力をhttp://jsonformatter.curiousconcept.com/またはhttp://jsonlint.com/にコピーし て検証できます。

スラッシュの前にエスケープ文字のように見えるもので、それを台無しにしているのはあなたの日付かもしれません. NB 私の日付が返されます。

"31/07/2005",

JSON の間違った場所にあるように見える改行が、それを台無しにしている可能性がありますか?

"2312432\r\n"] 

それらを完全に削除して機能するかどうかを確認するか、引用符の後または角括弧を閉じた後にブレークを配置することをお勧めしますか?

"2312432"\r\n]

"2312432"]\r\n 

確かではありませんが、リンクに従ってphpを変更し、まだ問題がある場合はフィドラーを使用して実際の応答を調べてください。

それでも問題が解決しない場合は、ここで回答を確認してください。

幸運を !Datatables.net を機能させる価値はあります。

于 2012-10-20T06:28:03.350 に答える