我正在使用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()
});
};
});
答案 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();
};