Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表体替换后数据表初始化(ajax)_Javascript_Php_Jquery_Ajax_Datatable - Fatal编程技术网

Javascript 表体替换后数据表初始化(ajax)

Javascript 表体替换后数据表初始化(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>

我有一个datatable,它有一个搜索框(日期范围过滤器),一旦我点击搜索按钮,表体就会根据过滤器进行替换(ajax)

我的问题是ajax成功后无法初始化表

HTML

<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()抛出错误的原因。它工作正常,但我的问题是默认情况下添加了一些过滤器。请检查屏幕截图。“找不到匹配的记录”它工作得很好,但我的问题是默认情况下添加了一些过滤器。请检查屏幕截图。“找不到匹配的记录”