我已經將DataTables添加到表中,我使用PHP和SQL通過AJAX獲取數據。在第一次加載時,在執行第一次搜索後,一切正常,一切按預期工作。但是,當第二次搜索時,所有用於搜索的代碼都已經重新運行,DataTable功能似乎停止工作。JQuery AJAX DataTable在加載數據後不加載標準函數
我在DataTable文件中的關鍵部分添加了一些警報,並在第一次搜索後發現它永遠不會將它重新存入文件。
我雖然也許我需要「重新初始化」數據表看到整個數據內容已經改變後,我再次搜索。
花了很長時間在網上看,很多建議都圍繞着銷燬和清除等。但似乎沒有任何工作。
這裏是我的代碼,你可以看到我有它設置做一些第一次搜索後不同,但不知道如何解決這個問題,如排序,分頁,搜索等所有不工作:
$.ajax({
type:'POST',
url:'/ITSMIS/data/asset/search.php',
data:HardwareAsset,
dataType: "html",
success:function(data){
LoadDataTableHeaders();
var NotSearched = document.getElementById("no-search-default");
var TableContainer = document.getElementById("data-table-container");
var NoSearchResults = document.getElementById("no-search-results");
if(NotSearched.style.display !== 'none'){
$(NotSearched).hide();
}
if(data){
if(TableContainer.style.display == 'none'){
$(TableContainer).show();
}
$(NoSearchResults).hide();
$('#data-table-results').html(data);
$("input:checkbox:not(:checked)").each(function() {
var DataTableColumn = "table ." + $(this).attr("name");
$(DataTableColumn).remove();
});
if (! $.fn.DataTable.isDataTable('#data-table')) {
$('#data-table').DataTable();
}
else{
}
}
else{
if(NoSearchResults.style.display == 'none'){
$(TableContainer).hide();
$(NoSearchResults).show();
}
}
}
})
如果要將數據轉儲到原始html表中,則需要使所有行無效並重新繪製。 DataTable不知道你正在改變底層HTML – Bindrid
你總是可以銷燬和重建整個表 – Bindrid