无法在 AJAX 响应中重新初始化 DataTable

用户9437856

我有一个选择下拉菜单和提交按钮。用户从选择下拉列表中进行选择并提交。然后它会调用ajax。如果找到数据,则该数据将显示在数据表中,否则将显示警报“未找到数据”。

上面的场景对我来说很完美,但问题是,

如果我从选择下拉列表中选择第二次,我的 ajax 第一次工作,然后我收到错误

DataTables warning: table id=report_list - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3.

我试过"bDestroy": true或者$("#report_list").dataTable().fnDestroy();但它不能正常工作。错误消失,但我的响应数据未显示。

$("form[name='reports']").validate({
  rules: {
    report_type:{required:true}

  },
   // errorElement: 'div',
    submitHandler: function(form) {
        var report_type = $('#report_type').val();
        var fromDate = $('#fromDate').val();
        var toDate = $('#toDate').val(); 
        $.ajax({
            url: baseUrl + "/Reports_control/Get_reports",
            method: "POST",
            //dataType: "json", 
            data: {report_type: report_type,fromDate:fromDate,toDate:toDate},
            success: function(response) {
            $('.search_record tbody tr').hide();
                var data = JSON.parse(response);
          if (data.status === 'error')
             {
                $('.report').hide();
                alert(data.msg);

              } 

    if (data.status === 'success') {
       if ( $.fn.DataTable.isDataTable( '#report_list' ) ) {
    $('#report_list').destroy();
}
      //alert(data);
      $('.company_report').show();
                var trHTML = '';
                    $.each(data.records, function (i, o){
                    trHTML += '<tr><td>'+o.Sr_no+
                              '</td><td>' + o.cutomer_name +
                              '</td><td>' + o.o_product_brandname +
                              '</td><td>' + o.o_product_qty +
                              '</td><td>'+ o.o_order_no +
                              '</td><td>'+ o.created_by +
                              '</td><td>'+ o.order_status +
                              '</td><td>'+ o.action_order_status +
                              '</td></tr>';
                          });

                  $('.search_record tbody').append(trHTML);
                  $('#report_list').DataTable({
                      language: {
                            sLengthMenu: "Show _MENU_",// remove entries text
                            searchPlaceholder: "Search",
                            search:""
                          },
                        "ordering": false,  // remove sorting effect from header 
                      });
           }
         }
       });
}
    });

你能帮我解决这个问题吗?

罗希特米塔尔

您应该创建一个变量并在该变量中分配数据表。检查以下代码:

<script>
    var reportListDatatable = '';
    $("form[name='reports']").validate({
        rules: {
            report_type: {required: true}
        },
        submitHandler: function (form) {
            var report_type = $('#report_type').val();
            var fromDate = $('#fromDate').val();
            var toDate = $('#toDate').val();
            $.ajax({
                url: baseUrl + "/Reports_control/Get_reports",
                method: "POST",
                //dataType: "json", 
                data: {report_type: report_type, fromDate: fromDate, toDate: toDate},
                success: function (response) {
                    $('.search_record tbody tr').hide();
                    var data = JSON.parse(response);
                    if (data.status === 'error')
                    {
                        $('.report').hide();
                        alert(data.msg);

                    }

                    if (data.status === 'success') {


                        if ($.fn.DataTable.isDataTable('#report_list')) {
                            $('#report_list').dataTable().fnClearTable();
                            $('#report_list').dataTable().fnDestroy();
                        }



                        $('.company_report').show();
                        var trHTML = '';
                        $.each(data.records, function (i, o) {
                            trHTML += '<tr><td>' + o.Sr_no +
                                    '</td><td>' + o.cutomer_name +
                                    '</td><td>' + o.o_product_brandname +
                                    '</td><td>' + o.o_product_qty +
                                    '</td><td>' + o.o_order_no +
                                    '</td><td>' + o.created_by +
                                    '</td><td>' + o.order_status +
                                    '</td><td>' + o.action_order_status +
                                    '</td></tr>';
                        });

                        $('.search_record tbody').append(trHTML);
                        reportListDatatable = $('#report_list').DataTable({
                            language: {
                                sLengthMenu: "Show _MENU_", // remove entries text
                                searchPlaceholder: "Search",
                                search: ""
                            },
                            "ordering": false, // remove sorting effect from header 
                        });
                    }
                }
            });
        }
    });
</script>

希望对你有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在AJAX响应中重新初始化DataTable

datatable jQuery无法重新初始化DataTable

DataTables 警告:无法重新初始化 DataTable

DataTable Ajax重新加载无法正常工作

无法获取DataTable在MVC App中初始化

gettng使用jQuery dataTables时无法重新初始化DataTable

使用Symfony2和Twig时警告“无法重新初始化DataTable”

无法重新初始化DataTable-数据表的动态数据

DataTables警告(表ID ='example-advanced'):在同时使用treetable和datatable时无法重新初始化DataTable

无法将AJAX调用中的jQuery DataTable与JSON数据绑定

DataTable 自动重新初始化自身

无法使用Ajax调用更新DataTable主体

从$ .ajax响应中初始化角度模块值或工厂

在AJAX中重新初始化TinyMCE 4

表格的DataTable Ajax重新加载

在 ajax 之后重新初始化 owlCarrouse

如何向json初始化并由Spring映射的jQuery dataTable的ajax请求添加请求参数

在 dataTable ajax 请求期间,隐藏的表单控件永远不会被初始化

更改表内容后重新初始化DataTable

重新初始化 JQuery DataTable 时禁用超链接

无法获取要使用Codeigniter和Ajax填充的dataTable

ajax无法从JSF2的datatable内部运行

我无法使用 AJAX 将数据加载到 DataTable

无法获得Ajax响应

在DataTable 1.10中加载ajax呼叫响应数据

在加载了AJAX的DIV中重新初始化之后,TinyMCE消失了

如何使用MVC中的Ajax从服务器新获取的数据重新初始化dataTables

ajax调用后jQuery UI datepicker重新初始化

加载Ajax之后重新初始化内容脚本吗?