2016-08-10 162 views
1

我使用JQuery DataTable。我發送數據到jQuery文件中的數據表單on ajax成功。第一次點擊一切都很好,但下一次點擊我只得到正確的數據和dataTables_info的錯誤值它始終顯示dataTables_info的第一個值,並且paginatio和row也來自第一個結果。 這是數據的DataTable中的第一顯示:ajax成功後重新加載datatable

The first Click

ALL接下來點擊我只得到正確的數據: 對於本例,他們是在下面的圖片,但一切顯示一個結果(資訊,秀,分頁)屬於在第一張圖片中顯示的第一個搜索: enter image description here

在第二個例子當我點擊任何頁面的分頁時,我得到的第一頁結果的內容! 這是我的功能的onclick:

$ ('#ButtonPostJson').on('click',function() { 

      $("tbody").empty(); 
      var forsearch = $("#searchItem").val(); 

    $.ajax({ 
     processing: true, 
     serverSide: true, 
     type: 'post', 
     url: 'searchData.json', 
     dataType: "json", 
     data: mysearch, 
     /* bRetrieve : true,*/ 

     success: function(data) { 
      $.each(data, function(i, data) { 
       var body = "<tr>"; 
       body += "<td>" + data.name + "</td>"; 
       .......................... 
       .......................... 
       body += "</tr>"; 
       $('.datatable-ajax-source table').append(body); 

      }) 
     ; 
      /*DataTables instantiation.*/ 
    $('.datatable-ajax-source table').dataTable(); 
    }, 

     error: function() { 
      alert('Processus Echoué!'); 
     }, 
     afterSend: function(){ 
    $('.datatable-ajax-source table').dataTable().reload(); 
/* $('.datatable-ajax-source table').dataTable({bRetrieve : true}).fnDestroy();  
    $(this).parents().remove(); 
$('.datatable-ajax-source table').dataTable().clear();*/ 
    } 
    }); 
    }); 

我嘗試一切,我不知道我錯過了。 我使用這個jQuery的數據表:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> 

感謝。

回答

1

在按鈕clik你不需要清空你的表體,並使用ajax再次啓動數據表。

你只需要打電話給你的阿賈克斯再次因爲你已經開始對文件準備功能

只使用

$("#Table_id").ajax.reload(); 

檢查下面的鏈接,你將有更好的主意。

https://datatables.net/reference/api/ajax.reload()

讓我知道這並不能幫助你

+0

我嘗試過在這裏:afterSend:函數(){ $(」數據表中的Ajax代碼表「).DataTable()ajax.reload(); }其不工作 – MedKostali

+0

是你的代碼是活的嗎? –

+0

對不起,我不明白你的問題 – MedKostali

0

$("#Table_id").ajax.reload();沒有工作。

我實現了 -

var mytbl = $("#Table_id").datatable(); 
mytbl.ajax.reload; 
0

我創造了這個簡單的功能:

function refreshTable() { 
    $('.dataTable').each(function() { 
     dt = $(this).dataTable(); 
     dt.fnDraw(); 
    }) 
}