我想用(table.ajax.reload();)重新加载我的数据表 使用ajax插入数据
找到用于数据的插入ajax,但重新加载dataTable显示此错误
错误数据表:
DataTables警告:表格ID =示例-无效的JSON响应。有关此错误的更多信息,请参见http://datatables.net/tn/1
ajax代码:
$("#btn-add").click(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: $('#TelegramForm').attr('action'),
data: {
msg: $('#msg').val(),
governorate: $('#governorate').val(),
},
success: function(data) {
if($.isEmptyObject(data.error)){
$('#modal-insert').modal('hide');
table.ajax.reload();
}else{
errorsMessageOne(data.error);
}
},
});
});
dataTable的代码:
var table = $('#example').DataTable();
控制器代码:
public function store(Request $request)
{
$validator = \Validator::make($request->all(), [
'msg'=>'required',
'governorate'=>'required',
],[],[
'msg'=>trans('site.msgTelegram'),
'governorate'=>trans('site.governorate')
]);
if ($validator->fails())
{
return response()->json(['error'=>$validator->errors()->all()]);
}
TelegramMsg::create($request->all());
session()->flash('success',trans('site.add'));
return response()->json();
}
答案 0 :(得分:0)
reload()
期望有一个data
对象提供给DataTables以便再次获取它。您可以考虑为表提供data
对象并将其合并到您拥有的对象中,或者可以尝试使用row.add()
函数将项目弹出到表中。您必须按照链接中的说明重新绘制表格。
最终看起来像table.row.add(data).draw();
而不是table.ajax.reload();
答案 1 :(得分:0)
仅更改您的JS代码:
$("#btn-add").click(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: $('#TelegramForm').attr('action'),
data: {
msg: $('#msg').val(),
governorate: $('#governorate').val(),
},
success: function(data) {
if($.isEmptyObject(data.error)){
$('#modal-insert').modal('hide');
if (!$.fn.dataTable.isDataTable('#example') ) {
$('#example').DataTable();
}else{
$("#example").DataTable().destroy();
$('#example').DataTable();
}
}else{
errorsMessageOne(data.error);
}
},
});
});