2016-12-29 47 views
2

工作我使用的數據表顯示從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/

+0

只是刪除成功回調 –

+0

什麼是你的成功回調data.return。正如我可以看到有沒有這樣的領域在json從這個鏈接返回 http://www.json-generator.com/api/json/get/cbEfqLwFaq?indent=2 –

+0

我的json有一個data.returned ...或者無論如何,我需要更新表加載後的輸入 – FireFoxII

回答

2

你只需要刪除成功回調。

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.dataSrc財產AJAX完成後,它會調用。 它將在刷新工作,以及 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/

+0

對不起,我的英語,但我需要更新輸入值與從json返回的數據...查看我編輯成功功能 – FireFoxII

+0

@FireFoxII檢查我更新的答案。它會爲你工作。 –

+0

是的!謝謝!! – FireFoxII

1

只要刪除success回調。

成功 - 不可重寫,因爲它在內部用於 DataTables。爲了操縱/變換服務器 使用ajax.dataSrc(上圖),或使用AJAX返回的數據作爲函數

Datatable默認處理success回調,不要將其覆蓋。

取而代之的是使用complete選項AJAX在數據加載後做些事情。

更新fiddle

+0

對不起,我的英語,但我需要更新輸入值與從json返回的數據...查看我的編輯成功功能 – FireFoxII

+0

是的,你可以使用響應做任何你想。檢查更新的提琴在這裏 –

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

更新FIDLE:http://jsfiddle.net/ntcwust8/94/

+0

對不起我的英文,但我需要更新每個重新加載的輸入值與從json返回的數據...查看我的編輯成功函數 – FireFoxII

+0

@FireFoxII'initComplete'函數得到一個'json'變量是一個對象與數據從ajax調用。你可以像'json.data'那樣訪問它,這就是所有數據的一個數組。 – ojovirtual

+0

是的,但似乎不工作時,我調用table.ajax.reload(); – FireFoxII