【发布时间】:2019-12-05 06:50:36
【问题描述】:
我在我的 DataTable 中构建了一个过滤器,以便检查状态。我正在使用以下代码来检索状态:
if(isset($_POST['status']))
{
if (!empty($where) ) {
$where .= "AND status = '". $_POST['status'] ."'";
} else {
$where .= "WHERE status = '". $_POST['status'] ."'";
}
}
else{
if (!empty($where) ) {
$where .= "AND status = '1'";
} else {
$where .= "WHERE status = '1'";
}
}
我没有选择数据的问题。当我查看 WebConsole 时,我可以看到脚本正在发布正确的数据并获得正确的响应。
但我对数据的呈现有一些问题。
当响应正确时,我想更新我的 DataTable。
我正在使用以下代码来更新我的数据表:
success:function(data){
$('#tb1').DataTable(data);
}
当我执行此代码时,我会收到一条 DataTables 警告:
DataTables warning: table id=tb1 - Cannot reinitialise DataTable.
我无法弄清楚我的脚本有什么问题。查看多个示例脚本应该可以工作。有人知道我的脚本有什么问题以及如何解决这个问题吗?
这是我的完整脚本:
<script type="text/javascript">
$( document ).ready(function() {
$('#tb1').DataTable({
"bprocessing": true,
"serverSide": true,
"ajax": {
"url": "./Response1.php",
"type": "POST",
"error": function(){
$("#grid_processing").css("display","none");
}
}
});
$("div.toolbar1").html('<select id="status" type="status"><option value="1">Active</option><option value="0">Inactive</option></select>');
$("#status").on('change',function () {
var val = $(this).val();
$.ajax({
url: './Response1.php',
type: 'POST',
data: 'status='+val,
success:function(data){
$('#tb1').DataTable(data);
}
});
});
});
</script>
【问题讨论】:
-
我尝试了所有这些选项。唯一的“工作”选项是
table.destroy();函数。它确实改变了我的数据表的布局,但它没有改变我的数据表中的数据 -
您对 ajax 请求有何期待?
-
@John,destroy 仅用于更改表的某些选项,刷新数据,您可以这样做:stackoverflow.com/questions/27778389
标签: javascript jquery ajax datatables