如何在 ajax 响应后重绘数据表
how to make redraw datatables after ajax response
我这里有个问题,首先我在select用户使用select2之后创建数据表,所以数据是根据selected用户动态的,然后旁边有个更新数据的按钮,这里是用来更新API的数据的,如果有最新的数据,对于数据更新的过程是没有问题的,但是数据表的过程有问题在更新过程之后,数据表不想被重绘
$("#name").on("change",function(){
var cek_id = this.value;
$("#user_id").val(cek_id);
console.log(cek_id);
$('#getData').DataTable().clear().destroy();
var i = 1;
var VendorClient = $("#getData").DataTable({
order: [ 0, "asc" ],
processing: true,
serverSide: false,
ajax: "{{route('get-user-data')}}"+"/"+cek_id,
columns: [{
data: null,
render: function ( data, type, full, meta ) {
return meta.row+1;
} },
{
data: "fullname",
name: "fullname",
orderable:false
},
{
data: "date",
name: "date",
orderable:false
}
]
});
});
这里是点击数据更新时的流程
$("#get_data").on("click",function(){
var cek_id = $("#user_id").val();
var url = "{{route('get-update-data')}}"+"/"+cek_id,
$.ajax({
type: "get",
url: url,
dataType: "json",
success:function(data){
if(data.status=='success'){
$('#getData').data.reload();
}else{
$('#getData').data.reload();
}
}
});
});
我尝试了各种方法,包括为 VendorClient 创建一个 globe 变量,然后在响应后 ajax 我正在添加此代码 VendorClient.ajax.reload(null, false); and get errorr (index):406 Uncaught (in promise) TypeError: Cannot read property 'ajax' of undefined
但它不起作用,有什么想法吗?
尝试重新绘制 table:
$('#getData').DataTable().clear().draw();
或
$('#getData').DataTable().columns.adjust().draw();
或
$('#getData').DataTable().columns.adjust().draw(false);
我这里有个问题,首先我在select用户使用select2之后创建数据表,所以数据是根据selected用户动态的,然后旁边有个更新数据的按钮,这里是用来更新API的数据的,如果有最新的数据,对于数据更新的过程是没有问题的,但是数据表的过程有问题在更新过程之后,数据表不想被重绘
$("#name").on("change",function(){
var cek_id = this.value;
$("#user_id").val(cek_id);
console.log(cek_id);
$('#getData').DataTable().clear().destroy();
var i = 1;
var VendorClient = $("#getData").DataTable({
order: [ 0, "asc" ],
processing: true,
serverSide: false,
ajax: "{{route('get-user-data')}}"+"/"+cek_id,
columns: [{
data: null,
render: function ( data, type, full, meta ) {
return meta.row+1;
} },
{
data: "fullname",
name: "fullname",
orderable:false
},
{
data: "date",
name: "date",
orderable:false
}
]
});
});
这里是点击数据更新时的流程
$("#get_data").on("click",function(){
var cek_id = $("#user_id").val();
var url = "{{route('get-update-data')}}"+"/"+cek_id,
$.ajax({
type: "get",
url: url,
dataType: "json",
success:function(data){
if(data.status=='success'){
$('#getData').data.reload();
}else{
$('#getData').data.reload();
}
}
});
});
我尝试了各种方法,包括为 VendorClient 创建一个 globe 变量,然后在响应后 ajax 我正在添加此代码 VendorClient.ajax.reload(null, false); and get errorr (index):406 Uncaught (in promise) TypeError: Cannot read property 'ajax' of undefined
但它不起作用,有什么想法吗?
尝试重新绘制 table:
$('#getData').DataTable().clear().draw();
或
$('#getData').DataTable().columns.adjust().draw();
或
$('#getData').DataTable().columns.adjust().draw(false);