2011-05-26 20 views
2

大多數情況下,我有28個項目,我使用分頁和顯示3頁使用Ajax 每頁有10個項目,無論我在複選框中選擇它應顯示在底部的值,現在每件事情都OK ,但我的問題是,當我選擇第二頁中的項目時,先前的列表正在消失,當我返回到第一頁時,它不顯示先前選擇的項目。從ajax頁面存儲選中的值

IAM沒有得到如何做到這一點 請幫助 感謝 我用這個jQuery代碼得到檢查值

function showValues() { 
    var page = $("#pagedis").val(); 
    var fields = $(":input").serializeArray(); 
    $("#results_" + page).empty(); 
    jQuery.each(fields, function(i, field) { 
     $("#results_" + page).append(field.value + "<br> "); 
    }); 
} 

我需要像Gmail中的作用,如果我們在一個頁面中,4個項目中選擇3項在第二頁,當我回來時,選中的值永遠不會變化

+1

您是否將值存儲在PHP會話中? – 2011-05-26 13:17:54

+0

與Brice達成一致 - 如果您要從DOM中刪除這些元素而不保留以前的狀態(例如使用會話),那麼當您將元素添加回DOM時,瀏覽器將不知道重新應用這些值。 – 2011-05-26 13:22:02

+0

我給定項目的名稱值以複選框的,所以IAM只是在DIV顯示所選擇的值 – bhuvana 2011-05-26 13:39:36

回答

0
  1. 你的複選框都有相同的名字嗎?如果不是,則將它們命名爲完全相同。
  2. 確保每個複選框有一個獨特的價值屬性
  3. 附加一個處理程序來跟蹤陣列中的檢查複選框

// global variable somewhere 
var checkedBoxes = new Array(); 

$('input[name=theNameYouDefinedAbove]').click(function(event){ 
    checkedBoxes[$(this).val()] = $(this).is(':checked'); 
}); 
  1. 現在,當你分頁,只要做到這一點

$('input[name=theNameYouDefinedAbove]').each(function(index, checkbox){ 
    if (checkedBoxes[$(checkbox).val()]) { 
     // NOTE: choose ONLY ONE! 

     // for jQuery 1.6+ 
     $(checkbox).prop('checked', true); 
     // for all jQuery 
     $(checkbox).attr('checked', 'checked'); 
    } 
}); 
+0

而($ ROW2 = mysql_fetch_array($ RES2)) \t \t {$ MENU_NAME = $ ROW2 ['MENU_NAME'];回聲「」;} – bhuvana 2011-05-26 14:06:48

+0

對不起,如果你的意思是一個連貫的想法,恐怕你失敗了。 – Milimetric 2011-05-26 14:09:51

+0

擺脫onclick並掛鉤在'$(document).ready(function(){... here ...});'中。你對我的回答有什麼問題嗎? – Milimetric 2011-05-26 14:16:16