2015-11-06 16 views
7

jQuery DataTableを読み込むとき、私は以下のコードを持っています。追加パラメータをAJAX呼び出しに渡すにはどうすればよいですか?以下の質問と回答で提案されているfnServerParamsコールバックは機能しません。つまり、aodata.push()を使用すると、 "push is undefined"という結果になります(なぜなら実際には、aodataは配列ではないからです)。では、これを行う正しい方法は何ですか?jQuery DataTable ajax呼び出しに追加のパラメータを渡すにはどうすればよいですか?

関連質問:

コード:私はRTFに無視

self.dataTable = self.dataTableContainer.DataTable({ 
      "autoWidth": false, 
      "bSort": false, 
      "displayStart": 0, 
      "paging": false, 
      "lengthChange": false, 
      "processing": true, 
      "serverSide": true, 
      "dom": "<'dataTables_header dashboard_alert_history__alertHeader'i>", 
      "ajax": { 
       url: getDataUri, 
       error: onError, 
       cache: false, 
       "fnDrawCallback": onTableDrawn, 
      }, 
      "fnDrawCallback": onTableDrawn, 
      "language": { 
       "info": resources.alarmHistory, 
       "infoEmpty": resources.alarmHistory, 
       "infoFiltered": '' 
      }, 
      "columns": [ 
       { 
        "data": "timestamp", 
        "mRender": function (data) { 
         return IoTApp.Helpers.Dates.localizeDate(data, 'L LTS'); 
        }, 
        "name": "timestamp" 
       }, 
       { 
        "data": "deviceId", 
        "mRender": function (data) { 
         return htmlEncode(data); 
        }, 
        "name": "deviceId" 
       }, 
       { 
        "data": "ruleOutput", 
        "mRender": function (data) { 
         return htmlEncode(data); 
        }, 
        "name": "ruleOutput" 
       }, 
       { 
        "data": "value", 
        "mRender": function (data) { 
         return htmlEncode(IoTApp.Helpers.Numbers.localizeFromInvariant(data)); 
        }, 
        "name": "value" 
       }, 
      ], 
      "columnDefs": [ 
       { 
        "targets": [0, 1, 2, 3], 
        "className": 'table_alertHistory_issueType', 
        "width": "20%" 

       } 
      ], 
     }); 

答えて

13

M. fnServerParamsコールバックは、バージョン1.9以前のバージョンではlegacyになりました。 DataTablesの最新バージョンでは、ajaxデータパラメータas described in the DataTables documentationを利用しています。以下の例では、dオブジェクトにmykeyを追加するトリックを行います:

$(document).ready(function() { 
    $('#example').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": { 
      "url": "scripts/server_processing.php", 
      "data": function (d) { 
       d.myKey = "myValue"; 
       // d.custom = $('#myInput').val(); 
       // etc 
      } 
     } 
    }); 
}); 
+0

どうもありがとう、良い「運動が、「瞬間」私はあなたが意味すると考えてい –

+1

@EdathadanChiefakaArun ...右の動きで私を助けました"憲法に役立つ! – Brett

関連する問題