簡體   English   中英

ajax成功函數無法處理數據表

[英]ajax success function not working on datatable

我正在使用datatable來顯示數據庫mysql中的列表

我需要在表加載結束時更新一些輸入,然后我使用成功函數,但這似乎阻止了數據呈現

var table = $('#example').DataTable({
'processing': true,
'serverSide': true,
'ajax': {
  type: 'POST',
  'url': url,
  'data': function (d) {
    console.log(d.order);
    return JSON.stringify( d );
  },

  // EDIT this "my" success function
  success: function( data ) {
    $('#my_input').val(data.return);
  }
}

Json回來的是:

{
 "data":[[ (datatable value) ]],
 "returned":"myvalue"
}

這里是jsfiddle

編輯http://jsfiddle.net/ntcwust8/95/

只需刪除success回調即可。

success - 不得覆蓋,因為它在DataTables內部使用。 要操作/轉換服務器返回的數據,請使用ajax.dataSrc(上面),或使用ajax作為函數

默認情況下, 數據表處理success回調,不要覆蓋它。

而是使用completeAJAX選項在數據加載后執行某些操作。

更新了小提琴

您只需要刪除成功回調。

var table = $('#example').DataTable({
        'processing': true,
        'serverSide': true,
        'ajax': {
          type: 'POST',
          'url': url,
          'data': function (d) {
            console.log(d.order);
            return JSON.stringify( d );
          }
        }

編輯

你需要使用它將在ajax完成后調用的ajax.dataSrc屬性。 它也適用於刷新以及https://datatables.net/reference/option/ajax.dataSrc

var table = $('#example').DataTable({
    'ajax': {
      type: 'POST',
      'url': url,
      'data': function (d) {
        console.log(d.order);
        return JSON.stringify( d );
      },
      "dataSrc": function (json) {
       $("#mydata").val(json.recordsTotal);
       return json.data;
        }
    },

  });

這里是更新的小提琴。 http://jsfiddle.net/2jkg3kqo/2/

Datatable有自己的complete事件,稱為initComplete

如果重新定義success ,則會覆蓋Datatable自己的功能。

var table = $('#example').DataTable({
    'processing': true,
    'serverSide': true,
    'ajax': {
    ....
    ....
    },    
   'initComplete':function(settings, json){
        alert($('#example tbody tr').length+ ' records on screen');
 });

參考: https//datatables.net/reference/option/initComplete

更新信息: http//jsfiddle.net/ntcwust8/94/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM