我對複選框有疑問。HTML表單中的複選框數組
<form method="post">
I speak the following languages:
<input type="checkbox" name="lang[]" value="en">English<br />
<input type="checkbox" name="lang[]" value="fr">Français<br />
<input type="checkbox" name="lang[]" value="es">Español<br />
</form>
是否有必要以命名郎[](使用陣列)或I可以給每個複選框一個單獨的名稱,如複選框:
<form method="post">
I speak the following languages:
<input type="checkbox" name="lang_en" value="en">English<br />
<input type="checkbox" name="lang_fr" value="fr">Français<br />
<input type="checkbox" name="lang_es" value="es">Español<br />
</form>
問題1相信無論作品,如果是的話,你什麼時候決定使用哪一個?
問題2我使用以上,所以我可以用PHP檢測該複選框的選擇是通過使用類似於if(isset($_POST['lang_en']))
一個代碼列出的第二個方法。如果我要使用第一種方法,是否有一種快速方法來檢查是否選擇了特定的複選框?目前我能想到的未經測試的解決方案涉及到做一個if(in_array('lang_en', $_POST['lang']))
來檢查它是否存在於$ _POST中。
問題3主要問題是這樣的:我使用第二種方法,所以我可以很容易地檢查一個複選框是否在PHP中被選中。現在我想添加一個文本鏈接,點擊後將選中所有的複選框。我的Javascript不太好,所以我使用http://www.shiningstar.net/articles/articles/javascript/checkboxes.asp的腳本,但示例腳本使用數組作爲複選框的名稱,而我的PHP代碼無法檢查複選框是否與數組一起用於複選框的名稱。 javascript代碼如何修改爲無數組工作?
希望我能想出這個煩人的問題!謝謝!
編輯
的Javascript:
<!-- Begin
function checkAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}
function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = false ;
}
// End -->
</script>
HTML:
<form action="http://localhost/website/places/search" method="post" accept-charset="utf-8" name="subcategory">
<ul>
<li><input type="checkbox" name="cuisine_American" value="American" /> American</li>
<li><input type="checkbox" name="cuisine_Chinese" value="Chinese" onClick="checkAll(document.subcategory.cuisine)" /> Chinese</li>
<li><input type="checkbox" name="cuisine_Indian" value="Indian" onClick="checkAll(document.subcategory.cuisine)" /> Indian</li>
<li><input type="checkbox" name="cuisine_Japanese" value="Japanese" onClick="checkAll(document.subcategory.cuisine)" /> Japanese</li>
<li><input type="checkbox" name="cuisine_Korean" value="Korean" onClick="checkAll(document.subcategory.cuisine)" /> Korean</li>
<li><input type="checkbox" name="cuisine_Mexican" value="Mexican" onClick="checkAll(document.subcategory.cuisine)" /> Mexican</li>
<li><input type="checkbox" name="cuisine_Middle Eastern" value="Middle Eastern" onClick="checkAll(document.subcategory.cuisine)" /> Middle Eastern</li>
<li><input type="checkbox" name="cuisine_Pakistani" value="Pakistani" onClick="checkAll(document.subcategory.cuisine)" /> Pakistani</li>
<li><input type="checkbox" name="cuisine_Italian" value="Italian" onClick="checkAll(document.subcategory.cuisine)" /> Italian</li>
</ul>
</form>
附加選項 - ''。這是我在需要動態複選框列表時使用的。當列表是靜態的(即硬編碼)時,我使用'name ='lang_en''選項。我從不使用複選框的'value'屬性。 – binaryLV
哇,這太酷了,我必須嘗試一下,謝謝! – Nyxynyx