jQuery Datatable第二次重载数据

时间:2018-07-14 06:18:31

标签: jquery ajax datatables

我正在使用数据表1.10.2。在删除数据并通过AJAX重新加载另一组信息后,我遇到了问题。这是我的代码:

$(document).ready(function(){
    $.ajax({
        type: "POST",
        url: "classes/ajax.class.php",
        data: { 
            task: "getAllOrdersDynamic" 
        }
    }).done(function(data){
        console.log(data);
        data = data.replace(/\\n/g, "\\n")  
            .replace(/\\'/g, "\\'")
            .replace(/\\"/g, '\\"')
            .replace(/\\&/g, "\\&")
            .replace(/\\r/g, "\\r")
            .replace(/\\t/g, "\\t")
            .replace(/\\b/g, "\\b")
            .replace(/\\f/g, "\\f");
        // remove non-printable and other non-valid JSON chars
        data = data.replace(/[\u0000-\u0019]+/g,""); 
        var data = JSON.parse(data);
        $("#dataTable").show();
        $("#esconder").hide();
        j=1;
        for(i=0; i<data.length;i++) {
          var rowIndex = $('#dataTable').dataTable().fnAddData([
              data[i].id,
              data[i].tipo_orden,
              data[i].cedula,
              data[i].nombre,
              data[i].telefono,
              data[i].fecha,
              data[i].total,
              data[i].estado,
              data[i].facturar,
              data[i].anular,
          ]);
        }

        $("#ordenDePedido").click();
    });
 });

到目前为止,一切都很好,但是当我单击一个按钮并执行另一个AJAX请求并尝试将数据加载到数据表上时,它就消失了

$(".buscar").click(function(){
    var radioFilter = $("input[type='radio']:checked").val();
    var buscar = $("#buscar").val();
    var fecha_inicial = $("#fechaInicio").val();
    var fecha_final = $("#fechaFinal").val();

    $.ajax({
        type: "POST",
        url: "classes/ajax.class.php",
        data: { 
            task: "getAllOrdersDynamicSearch",
            radioFilter: radioFilter,
            buscar: buscar,
            fecha_inicial: fecha_inicial,
            fecha_final: fecha_final
        }
    }).done(function(dataSearch){
        console.log(dataSearch);
        dataSearch = dataSearch.replace(/\\n/g, "\\n")  
            .replace(/\\'/g, "\\'")
            .replace(/\\"/g, '\\"')
            .replace(/\\&/g, "\\&")
            .replace(/\\r/g, "\\r")
            .replace(/\\t/g, "\\t")
            .replace(/\\b/g, "\\b")
            .replace(/\\f/g, "\\f");
        // remove non-printable and other non-valid JSON chars
        dataSearch = dataSearch.replace(/[\u0000-\u0019]+/g,""); 
        var data = JSON.parse(dataSearch);
        
        //$("#dataTable").show();
        //$("#esconder").hide();
        j=1;

        if ($.fn.DataTable.isDataTable("#dataTable")) {
          $('#dataTable').DataTable().destroy().clear();
        }

        for(i=0; i<data.length;i++) {
          console.log(id);
          $('#dataTable').dataTable().fnAddData([
              data[i].id,
              data[i].tipo_orden,
              data[i].cedula,
              data[i].nombre,
              data[i].telefono,
              data[i].fecha,
              data[i].total,
              data[i].estado,
              data[i].facturar,
              data[i].anular,
          ]);
        } 

        $("#ordenDePedido").click();
    });

有人可以向我解释我做错了什么吗?我只需要清理数据表并用新数据填充它即可。

谢谢。

0 个答案:

没有答案