Javascript Datatables Jquery Ajax
我在重新初始化数据表时遇到问题。下面的代码通过从getOrderStatus.php中提取json来工作,成功后将所有json数据放入javascript变量中,然后我可以将这些变量设置为div标记,并在我的网页上显示我需要的数据。但是,一旦ajax循环运行并显示以下错误消息“DataTables警告:table id=mytable-无法重新初始化Datatable”,则无法重新初始化Datatable。我相信我需要一种方法来杀死表并在ajax刷新时重新创建它,但是我似乎找不到一种方法来做到这一点Javascript Datatables Jquery Ajax,javascript,php,jquery,ajax,datatable,Javascript,Php,Jquery,Ajax,Datatable,我在重新初始化数据表时遇到问题。下面的代码通过从getOrderStatus.php中提取json来工作,成功后将所有json数据放入javascript变量中,然后我可以将这些变量设置为div标记,并在我的网页上显示我需要的数据。但是,一旦ajax循环运行并显示以下错误消息“DataTables警告:table id=mytable-无法重新初始化Datatable”,则无法重新初始化Datatable。我相信我需要一种方法来杀死表并在ajax刷新时重新创建它,但是我似乎找不到一种方法来做到这
$(document).ready(function ajaxLoop(){
$.ajax({
url: 'getOrderStatus.php', // Url of Php file to run sql
data: "",
dataType: 'json', //data format
success: function updateOrder(data) //on reciept of reply
{
var OrdersSubmitted = data.OrderStatus[0].SUBMITTED; //get Orders Submitted Count
var OrdersFulfilled = data.OrderStatus[0].FULFILLED; //get Orders Fulfilled count
var LastTransaction = data.LastTransaction[0]; //get Last Transaction
//--------------------------------------------------------------------
// 3) Update html content
//--------------------------------------------------------------------
$('#OrdersSubmitted').html(OrdersSubmitted);
$('#OrdersFulfilled').html(OrdersFulfilled); //Set output html divs
$('#mytable').dataTable({
"data": LastTransaction,
"aging": false,
"searching": false,
"columns": [
{ "title": "ORDER_ID" }, // <-- which values to use inside object
{ "title": "STATUS" },
{ "title": "ACC_NUMBER" },
{ "title": "SORT_CODE" }
]
});
setTimeout(ajaxLoop, 2000);
}
});
});
$(document).ready(函数ajaxLoop(){
$.ajax({
url:'getOrderStatus.php',//要运行sql的php文件的url
数据:“,
数据类型:“json”,//数据格式
成功:函数updateOrder(data)//在收到回复时
{
var OrdersSubmitted=data.ordersstatus[0]。已提交;//获取已提交订单数
var OrdersFulfilled=data.ordersstatus[0]。已完成;//获取已完成订单计数
var LastTransaction=data.LastTransaction[0];//获取最后一个事务
//--------------------------------------------------------------------
//3)更新html内容
//--------------------------------------------------------------------
$('#ordersupmitted').html(ordersupmitted);
$('#OrdersFulfilled').html(OrdersFulfilled);//设置输出html divs
$('#mytable')。数据表({
“数据”:上次交易,
“老化”:假,
“搜索”:错误,
“栏目”:[
{“title”:“ORDER_ID”},//您是否尝试使用“bDestroy”:true
然后选项应为destroy:true(老化应更改为分页):
当我添加“bDestroy”时仍然会遇到同样的问题:真的,不幸地添加了另一个代码块?如果您使用的是API,那么是哪个版本?
$('#mytable').dataTable({
"data": LastTransaction,
"aging": false,
"searching": false,
"bDestroy": true,
"columns": [
{ "title": "ORDER_ID" }, // <-- which values to use inside object
{ "title": "STATUS" },
{ "title": "ACC_NUMBER" },
{ "title": "SORT_CODE" }
]
});
var table = $('#mytable');
if ($.fn.DataTable.fnIsDataTable(table)) {
//It's already a datatable
//clear and destroy
table.dataTable().fnClearTable();
table.dataTable().fnDestroy();
}
**It seems your are using latest datatable version:**
$('#mytable').dataTable({
"data": LastTransaction,
"paging": false,
"searching": false,
"destroy": true,
"columns": [
{ "title": "ORDER_ID" }, // <-- which values to use inside object
{ "title": "STATUS" },
{ "title": "ACC_NUMBER" },
{ "title": "SORT_CODE" }
]
});
if($.fn.DataTable.isDataTable("#myTable"))
{
$('#myTable').DataTable().clear().destroy();
}