2011-05-23 46 views
0

我有一個tablesorter表,它工作正常,使用ajax方法更新表數據。我已經添加了尋呼機的tablesorter插件現在jQuery Tablesorter傳呼機插件和Ajax更新

$(.tablesorter').trigger("update");

功能,同時更新表,沒有更新其仍顯示前一行/頁數尋呼機。

我使用:

//init tablesorter 
    $('#tblCustomers').tablesorter({ 
      headers: { 0: { sorter: false}}, 
      sortList: [[5,1]]    
    }).tablesorterPager({container: $("#pager")}); 
    //search listener 
    $('input.search').change(function() { 
       $.post('search.php', { 'keyword' : $(this).val() }, function(data) { 
         $('#tblCustomers tbody').html(data); 
         $('#tblCustomers').trigger('update'); 
       } 
    }); 

建議,請...

+0

我有同樣的問題。這可能有所幫助: http://stackoverflow.com/a/9000306/1168836 – Albertyto 2012-01-25 09:32:11

回答

0
  1. 確保您更新的容器更新數據庫表
  2. 注意緩存後,我想補充一個帶search.php的隨機查詢字符串(例如search.php?cachebuster = arandomnumberhere),以確保防止頁面緩存。

控制緩存有多種方法。你可以將它設置在服務器上,通過htaccess的,前等等等等提到的隨機數

+0

>>更新數據庫表後確保刷新容器 請解釋一下嗎? – danielc 2011-05-23 08:43:28

0
function tableUpdated() { 
    $('#tblCustomers').tablesorter({ 
     headers: { 0: { sorter: false}}, 
     sortList: [[5,1]]    
    }).tablesorterPager({container: $("#pager"), positionFixed: false}); 
} 

$(document).ready(function() { 
    $('input.search').change(function() { 
     $.post('search.php', { 'data': data } , function(data) { 
     tableUpdated(); 
     }); 
    }); 

原來的解決方案是將表初始化移動到一個單獨的函數,調用成功的部分內$ .post

經過幾個小時的谷歌搜索結果,這是唯一的工作在我的情況。

+0

這不起作用。它除去當前可見頁面的所有記錄。 – 2012-02-24 22:42:38

2

丹尼爾斯的答案几乎完美,但尋呼機將跳過頁面。我解決了這個與我發現的另一個答案,這裏是我想出了:

function tableUpdated() { 
$('#pager *').unbind('click'); 
$("#table") 
.tablesorter({ 
    // zebra coloring 
    widgets: ['zebra'] 
}) 
.tablesorterPager({container: $("#pager")}); 
} 

希望這會有所幫助,快樂的編碼!