使用AJAX更新数据表

时间:2014-06-06 04:24:23

标签: javascript jquery ajax datatables jquery-datatables

我正在使用AJAX处理Datatables,我在页面加载时生成一个表。我的代码的第一部分工作正常。根据用户输入,我想用新数据更新表。

现在,当我调用函数updateTable()时,它会为我发送的内容返回正确的JSON,但我无法弄清楚如何实际更新表。成功'部分是错的,但我不知道该怎么做我尝试了很多api函数,但似乎没有任何工作。有什么帮助吗?

$(document).ready(function() {



var valve = "1-8000AL" //$("#valveSelect").val();
var tab = "1"
$('#dataTable').dataTable( {
    "scrollY":  "400px",
    "scrollCollapse": true,
    "paging": false,

    "ajax": {"url": "ajax/update.php","data": {"valve" : valve, "tab" : tab}},
    "dom": '<"top">rts<"bottom"filp><"clear">'
}); 



function updateTable(){

    var valve = $("#valveSelect").val();
    var tab = "2" 
    $('h3').text(tab);
    $.ajax({
        url: "ajax/update.php",
        data:{"valve" : valve, "tab" : tab},
        success: $('#dataTable').dataTable().draw()
    });

};  

});

1 个答案:

答案 0 :(得分:1)

首先,使用.DataTable构建数据表,而不是.dataTable.DataTable是数据表1.10的新样式。 .DataTable返回一个DataTables api实例,而.dataTable返回一个jquery对象。

我使用的解决方案是手动构建查询字符串(使用$ .param()),然后使用datatables API从新位置重新加载数据。

function updateTable(){
    var valve = $("#valveSelect").val();
    var tab = "2"
    var query_string = $.param({"valve" : valve, "tab" : tab})
    var ajax_source = "ajax/update.php?" + query_string
    var table = $("#dataTable").DataTable(); // get api instance
    // load data using api
    table.ajax.url(ajax_source).load();
};