2009-10-14 84 views
1

好吧,讓我從一個例子開始。我有一堆物品,他們可以分爲一系列的類別。一個項目可以有多個類別。基本上我所擁有的是按類別分組的複選框列表。同樣一件物品可能會出現多次。因此,它可能看起來像:表單中輸入的多個值?

藍色物品: 項目1個 項目2 項目3

紅項目: 項目1個 項目4

所以每個項目旁邊有一個複選框刪除項目類別關聯。我應該在輸入值中存儲什麼,以便區分不同類別之間的項目?我的意思是我不能使用商品編號,因爲它可能出現在多個類別中。我可以做一些類似「blue-item2」的事情,然後當我的服務器端腳本通過表單分割字符串「 - 」,但似乎有點不妥。

對不起,如果問題有點含糊。如果需要,我可以澄清一點。

回答

9

表單包含以下幾個要素:

<input type="checkbox" name="item[blue][0]"> 
<input type="checkbox" name="item[blue][1]"> 
<input type="checkbox" name="item[blue][2]"> 

<input type="checkbox" name="item[red][0]"> 
<input type="checkbox" name="item[red][1]"> 

將導致該$_POST['item']元以下值:

array(
    'blue' => array(0, 1, 2), 
    'red' => array(0, 1), 
); 
+0

那就是做到這一點的方法,arrr – pxl 2009-10-14 10:16:22

1

,您可以利用每個複選框名稱標籤,並給他們同一類別的同名。就像說你有一個複選框設置爲藍色項目然後 輸入類型=「檢查」名稱=「blueitems []」

你注意到[](數組)在名稱,即提供相同的名稱同組。現在,您可以通過這種方式訪問​​document.getElementsByName [「blueitems []」],您將獲得一個數組,並使用索引訪問特定元素。

一個類似的例子可以在這裏找到。 Example for using name arrays