[英]How to reload data table after submitting a form using ajax?
该表已显示,并且该表顶部有一个“添加”按钮。 我想要做的是在提交我拥有的模态表单后重新加载表格。
这是我用于添加 json 对象的 ajax 代码。 我很确定解决方案也将在其中。
$('#btnSubmit').click(function(event) {
var formData = {
'name' : $('[name=name1]').val(),
'address' : $('[name=bAddress1]').val(),
'officer' : $('[name=officer1]').val(),
'contactnumber': $('[name=contactN1]').val()
};
$.ajax({
type : 'POST',
url : "process.php",
data : formData,
dataType : 'json',
encode : true,
success : function(r){
var status = "1";
alert (status);
},
dataType: "html"
});
});
这是我加载表格的地方
<div class="container">
....
</div>
问题是:提交表单后如何重新加载表格?
我今晚自己也在尝试这个。 我没有成功使用 DataTable 的内置 API。 我一直收到“无效的 JSON”错误,它不会加载表。 请参阅下面的我开始工作的示例代码。
$(document).ready(()=> {
// wait for page to load
let userid = 12345;
function loadtbl() {
$.get("data.php?userid=" + encodeURIComponent(userid), (data)=> {
// initialize datatable with your specified parameters
$("#exampletbl").DataTable({});
}):
}
// The table will not load unless if you call on the function which is done below
loadtbl();
// Submit new data to back end and then reload table
$("#form").submit((event)=> {
$.post("data.php", {username: $("#username").val()}, (data)=> {
// Destroy the table the reload it
$("#contactstbl").DataTable().destroy();
loadtbl();
});
event.preventDefault();
});
});
我希望这有帮助!!
如果要重新加载数据表的步骤要遵循
假设您的初始表启动如下
var myTable = $("#tableId").DataTable({ ..});
销毁表的前一个实例。
myTable = $("#tableId").DataTable(); myTable.destroy();
使用新接收的数据再次初始化表。
myTable = $("#tableId").DataTable({ ......... //Your table parameters });
保持上面两步的功能,从你的数据接收的ajax成功函数中调用。
这不是加载数据的唯一方法,但易于遵循。 :)
尝试这个
$('#selector').DataTable().ajax.reload();
有关更多信息,请查看此链接https://datatables.net/reference/api/ajax.reload()
根据您的标题,您说的是“数据表”。 我假设这个https://datatables.net就是你的意思。 如果我是对的。
该表格已显示,并且该表格顶部有一个“添加”按钮
我认为您在重新加载表格时想要实现的是在表格中添加新行。 实际上,Datatables 有一个 API,无需重新加载整个表。 更高效。
$('#btnSubmit').click(function(event) {
var n = $('[name=name1]').val();
var a = $('[name=bAddress1]').val();
var o = $('[name=officer1]').val();
var c = $('[name=contactN1]').val()
var formData = {
'name' : n,
'address' : a,
'officer' : o,
'contactnumber': c
};
$.ajax({
type : 'POST',
url : "process.php",
data : formData,
dataType : 'json',
encode : true,
success : function(){
$('#yourTable').DataTable().row.add([
n,
a,
o,
c
]).draw( false );
},
dataType: "html"
});
});
您可以使用success
参数将数据附加到 DOM。
这是您的代码的样子:
$.ajax({
type : 'POST',
url : "process.php",
data : formData,
dataType : 'json',
encode : true,
success : function(data){
$('.container').html(data); // <--- append data to div
},
dataType: "html"
});
确保process.php
返回一些东西(在你的例子中是一个表)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.