2016-05-04 89 views
1

再次問候,我的同伴編碼員。JQUERY DATATABLE在刷新後保留過濾器參數

仍與同DATATABLE工作...

我能夠在那個DataTable中進行單獨列搜索該表的頂部添加輸入字段。

我現在需要做的是保留頁面刷新後在INPUT字段(或字段)中輸入的參數。

這是到目前爲止我的代碼:

// header input filters 
$('#example1 .filters th').each(function(){ 
    var title = $('#example1 thead th').eq($(this).index()).text(); 
    $(this).html('<input type="text" placeholder="Search '+title+'" />'); 
}); 

// set and print the datatable 
var $dataTable = $('#example1').DataTable({ 
    "ajax": 'api/dateset.php', 
    "iDisplayLength": 25, 
    "order": [[ 6, "desc" ]], 
    "scrollY": 580, 
    "scrollX": true, 
    "bDestroy": true, 
    "stateSave": true 
}); 

// Apply the search to columns 
$dataTable.columns().eq(0).each(function(colIdx){ 
    $('input', $('.filters th')[colIdx]).on('keyup change', function(){ 
    $dataTable 
     .column(colIdx) 
     .search(this.value) 
     .draw(); 
    }); 
}); 

如果你在上面,我設置了$ DataTable中的部分注意,你應該看到「stateSave」:真。使用它,當頁面刷新時,它會保存用戶輸入的參數搜索,但不會在INPUT字段中顯示文本。

這就是我卡住的地方。

這裏是一個可視化表示:

刷新前 -

enter image description here

刷新後 -

enter image description here

正如你在第二圖片中看到,在網上搜索好對於BOOKING以TEST222開頭,但文本在BOOKING INPUT中不再可見場。

我沒碰到過這樣的帖子:https://datatables.net/reference/option/stateSaveCallback

但我不知道如何實現代碼到我的代碼。我甚至不確定stateSaveCallback是否是正確的函數。

如果您在我的代碼中看到錯誤,或者您知道如何將stateSaveCallback應用於我的代碼,請指導我如何使用它。

在LeeLuu達拉斯的聲音,「Pleease ....幫助。」

非常感謝你提前。

五月四日與你同在。

回答

3

所以經過搜索,以及沒有從SO答案2天,我終於找到了這個帖子:http://live.datatables.net/neqozaj/1/edit

利用這個職位,我才得以這段代碼添加到整體功能:

var state = $dataTable.state.loaded(); 
if (state) { 
    $dataTable.columns().eq(0).each(function (colIdx) { 
    var colSearch = state.columns[colIdx].search; 

    if (colSearch.search) { 
    $('input', $('.filters th')[colIdx]).val(colSearch.search); 
    } 
    }); 
    $dataTable.draw(); 
} 

使用這個,我能夠達到我想要的效果。太糟糕了,我不能upvote我自己的職位。

謝謝反正,所以。