2012-01-11 65 views
0

我正在處理一個項目,並在管理員一側顯示所有項目,以便當管理員點擊三個項目時,他們應顯示在該網站的索引頁上並使其他複選框在選擇三個項目後禁用,以及何時更改它刪除所選複選框中的一個,然後將選擇給其他人。我所做的是從堆棧溢出獲得一個java腳本代碼。現在這個代碼工作,但問題是,當我刷新頁面或從其他菜單導航更多的複選框可以選擇,即使它顯示索引頁面上的前三個選定的項目。我可以使它不能選擇頁面刷新後。這裏是代碼最多選中三個複選框和其他禁用

function disableHandler (form, inputName) { 
    var inputs = form.elements[inputName]; 
    for (var i = 2; i < inputs.length; i++) { 
     var input = inputs[i]; 
     input.onclick = function (evt) { 
      if (this.checked) { 
       disableInputs(this, inputs); 
      } 
      else { 
       enableInputs(this, inputs); 
      } 
      return true; 
     }; 
    } 
} 

function disableInputs (input, inputs) { 
    for (var i = 2; i < inputs.length; i++) { 
     var currentInput = inputs[i]; 
     if (currentInput != input) { 
      currentInput.disabled = true; 
     } 
    } 
} 

function enableInputs (input, inputs) { 
    for (var i = 2; i < inputs.length; i++) { 
     var currentInput = inputs[i]; 
     if (currentInput != input) { 
      currentInput.disabled = false; 
     } 
    } 
} 

回答

1

你應該堅持在數據庫中的選擇。這裏有一個待辦事項列表:

  1. 每個選擇/取消後,發送背景AJAX請求到服務器,與選定的複選框(ES)的細節。

  2. 在服務器上保存這些信息到數據庫。

  3. 當用戶刷新頁面時,使用數據庫中的信息將選中的複選框顯示爲選中狀態,其他顯示爲禁用狀態。

+0

我發送信息到數據庫時,它會檢查它使其狀態爲1,當未選中時,它將使狀態爲零。但問題是它不應該選擇多於三個。其他選擇應該被禁用 – 2012-01-11 05:42:11

+0

你需要控制什麼? – 2012-01-11 05:42:48

+0

我發送信息到數據庫時,它會檢查它是否爲狀態,當未選中時,它將使狀態爲零。但問題是它不應該選擇多於三個。其他選擇應該禁用 – 2012-01-11 05:44:12

0

您可以發送ajax請求來設置會話變量以跟蹤用戶選擇的內容。

像$ _SESSION [「複選框」] [「選項1」] = 1,如果該特定項目被選中

我不太明白你正在嘗試做雖然,但它似乎比較簡單。讓我知道你是否需要更多的幫助。

相關問題