Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 具有动态数据的jQuery数据表_Javascript_Jquery_Ajax_Datatables - Fatal编程技术网

Javascript 具有动态数据的jQuery数据表

Javascript 具有动态数据的jQuery数据表,javascript,jquery,ajax,datatables,Javascript,Jquery,Ajax,Datatables,我有一个简单的消息传递系统,我使用jQuery/AJAX从数据库中检索消息并将其附加到表中。我想要对消息进行分页,所以我选择使用DataTables插件() 我在使用动态生成的数据时遇到问题。我还具有诸如“删除消息”之类的功能,该功能将删除消息,然后再次检索消息(刷新表)。我收到错误“无法重新初始化数据表” 这是我目前的代码: function getmessages(){ $.ajax({ type: "POST", url: "modules/ajax

我有一个简单的消息传递系统,我使用jQuery/AJAX从数据库中检索消息并将其附加到表中。我想要对消息进行分页,所以我选择使用DataTables插件()

我在使用动态生成的数据时遇到问题。我还具有诸如“删除消息”之类的功能,该功能将删除消息,然后再次检索消息(刷新表)。我收到错误“无法重新初始化数据表”

这是我目前的代码:

function getmessages(){
    $.ajax({
        type: "POST",
        url: "modules/ajaxgetmessages.php",
        dataType: 'json',
        cache: false,
        })
        .success(function(response) {
            if(!response.errors && response.result) {
                $("#tbodymessagelist").html('');
                $.each(response.result, function( index, value) {
                    var messagesubject = value[3];
                    var messagecontent = value[4];
                    var messagetime = value[5];
                    var sendername = value[2];
                    var readstatus = value[7];
                    var messageid = value[8];
                    if (readstatus==0){
                        messageheader += '<tr><td><input type="checkbox" class="inboxcheckbox input-chk"></td><td class="sendername"><b>'+sendername+'</b></td><td class="messagesubject"><b>'+messagesubject+'</b></td><td><b>'+messagetime+'</b></td><td class="messageid" style="display:none">'+messageid+'</td><td class="readstatus" style="display:none">'+readstatus+'</td><td class="messagecontent" style="display:none"><b>'+messagecontent+'</b></td></tr>';
                    } else {
                        messageheader += '<tr><td><input type="checkbox" class="inboxcheckbox input-chk"></td><td class="sendername">'+sendername+'</td><td class="messagesubject">'+messagesubject+'</td><td>'+messagetime+'</td><td class="messageid" style="display:none">'+messageid+'</td><td class="readstatus" style="display:none">'+readstatus+'</td><td class="messagecontent" style="display:none"><b>'+messagecontent+'</b></td></tr>';                                                         
                    }
                });
                $("#tbodymessagelist").html(messageheader);
                $('#tblinbox').DataTable({
                    "paging":   true,
                    "ordering": false,
                    "info":     false
                });
            } else {
                $.each(response.errors, function( index, value) {
                    $('input[name*='+index+']').addClass('error').after('<div class="errormessage">'+value+'</div>')
                });
            }
        });     
}
函数getmessages(){ $.ajax({ 类型:“POST”, url:“modules/ajaxgetmessages.php”, 数据类型:“json”, cache:false, }) .成功(功能(响应){ 如果(!response.errors&&response.result){ $(“#tbodymessagelist”).html(“”); $.each(response.result、函数(索引、值){ var messagesubject=值[3]; var messagecontent=值[4]; var messagetime=值[5]; var sendername=值[2]; var readstatus=值[7]; var messageid=值[8]; 如果(readstatus==0){ messageheader+=''+sendername+''+messagesubject+''+messagetime+''+messageid+''+readstatus+''+messagecontent+''; }否则{ messageheader+=''+sendername+''+messagesubject+''+messagetime+''+messageid+''+readstatus+''+messagecontent+''; } }); $(“#tbodymessagelist”).html(messageheader); $('#tblinbox')。数据表({ “分页”:正确, “命令”:错误, “信息”:错误 }); }否则{ $.each(response.errors、函数(索引、值){ $('input[name*='+index+']')。addClass('error')。在(''+value+'')之后 }); } }); }
那么,从本质上讲,如何在删除消息或其他函数后对表进行更改,然后“刷新”表呢?它还显示
在页脚中显示0个条目中的0到0个
,即使其中有条目。

在创建新实例之前,您必须销毁datatable

` $('#tblinbox').DataTable.destroy(); $('#tblinbox').empty(); ` $('#tblinbox').DataTable.destroy(); $('tblinbox').empty();
尝试
destroy:true
数据表中有ajax选项,因此您可以让数据表完成所有繁重的工作,分页/排序,这样您就不再需要将所有行作为一个整体加载。从长远来看,当有很多信息时,这将是一件好事。