Javascript 表体替换后数据表初始化(ajax)
我有一个datatable,它有一个搜索框(日期范围过滤器),一旦我点击搜索按钮,表体就会根据过滤器进行替换(ajax) 我的问题是ajax成功后无法初始化表 HTMLJavascript 表体替换后数据表初始化(ajax),javascript,php,jquery,ajax,datatable,Javascript,Php,Jquery,Ajax,Datatable,我有一个datatable,它有一个搜索框(日期范围过滤器),一旦我点击搜索按钮,表体就会根据过滤器进行替换(ajax) 我的问题是ajax成功后无法初始化表 HTML <table data-page-length="20" id="occupancy" class="ui small celled table segment display" cellspacing="0" width="100%"> <thead> <tr>
<table data-page-length="20" id="occupancy" class="ui small celled table segment display" cellspacing="0"
width="100%">
<thead>
<tr>
<th>Date</th>
<th>Arrivals</th>
<th>Departures</th>
<th>Occupied</th>
<th>Available</th>
<th>Occupancy</th>
</tr>
</thead>
<tbody id="occupancyBody">
</tbody>
</table>
日期
到达
离开
占用
可用
占用
Ajax
$.ajax({
键入:“POST”,
url:“../system/user/modules/”+MODULE_NAME+“/controller.php”,
数据:“action=filterOc&”+url\u数据,
成功:函数(resultData){
$('#职业体').html(结果数据);
$('#占用率')。数据表();
}
});代码>
您好,我想您选择了错误的车身id:
$('#occupancyBody').html(resultData);
但在html中:
<tbody id="dailyAct">
希望对您有所帮助,您好,我猜您选择了错误的身体id:
$('#occupancyBody').html(resultData);
但在html中:
<tbody id="dailyAct">
希望对您有所帮助,您可以使用下面提到的代码在ajax调用后重新初始化表
定义datatable时,可以将数据存储在变量中
var myTable = $('#occupancy').DataTable({ // all your configuration });
现在,在ajax调用之后,您可以在下面的行中调用
myTable.ajax.reload();
在ajax:success函数中删除这一行。
$('#occupancy').dataTable();
如果不起作用,请告诉我。您可以在ajax调用后使用下面提到的代码重新初始化表
定义datatable时,可以将数据存储在变量中
var myTable = $('#occupancy').DataTable({ // all your configuration });
现在,在ajax调用之后,您可以在下面的行中调用
myTable.ajax.reload();
在ajax:success函数中删除这一行。
$('#occupancy').dataTable();
如果不起作用,请告诉我。请检查这里
$(文档).ready(函数(){
变量表=$('#占用率')。数据表();
$.ajax({
键入:“POST”,
url:“../system/user/modules/controller.php”,
数据:“action=filterOc&”,
成功:函数(resultData){
$('#职业体').html(结果数据);
table.ajax.reload();
}
});
});代码>
日期
到达
离开
占用
可用
占用
请检查这里
$(文档).ready(函数(){
变量表=$('#占用率')。数据表();
$.ajax({
键入:“POST”,
url:“../system/user/modules/controller.php”,
数据:“action=filterOc&”,
成功:函数(resultData){
$('#职业体').html(结果数据);
table.ajax.reload();
}
});
});代码>
日期
到达
离开
占用
可用
占用
只有在Datatable的初始化中包含ajax
选项时,ajax.reload()
API函数才能工作(请参阅)
在这种情况下,我建议将destroy:true
添加到数据表的初始化中,如下所示:
$('#occupancy').DataTable({ destroy:true})
这将允许您在每次ajax调用成功时重新创建表。只有在Datatable的初始化中包含了ajax
选项时,ajax.reload()
API函数才会起作用(请参阅)
在这种情况下,我建议将destroy:true
添加到数据表的初始化中,如下所示:
$('#occupancy').DataTable({ destroy:true})
这将允许您在每次ajax调用成功时重新创建表。这是一个键入错误。请再检查一下,这是打字错误。请再次检查,我的代码如下:var dt=$(“#占用”).dataTable()$(“#职业体”).html(结果数据);dt.ajax.reload();请检查我的新答案并进行相应的更改。此Datatable实例没有ajax源数据(即:没有ajax选项),这就是为什么ajax.reload()会抛出错误。我的代码类似于var dt=$(“#占用”).Datatable()$(“#职业体”).html(结果数据);dt.ajax.reload();你能检查我的新答案并做出相应的更改吗?这个Datatable实例没有ajax源数据(即:没有ajax选项),这就是为什么ajax.reload()抛出错误的原因。它工作正常,但我的问题是默认情况下添加了一些过滤器。请检查屏幕截图。“找不到匹配的记录”它工作得很好,但我的问题是默认情况下添加了一些过滤器。请检查屏幕截图。“找不到匹配的记录”