【发布时间】:2012-03-08 23:26:32
【问题描述】:
我有一个电子邮件列表,旁边有一个复选框,用户可以选择他/她要发送电子邮件的地址。现在我添加了另一个复选框,选中时将选中所有其他复选框。下面是我写的代码(当然是在 stackoverflow 的帮助下):
<SCRIPT LANGUAGE="JavaScript">
function selectFunction (checkall,field)
{
if(checkall.checked==true){
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}else{
for (i = 0; i < field.length; i++)
field[i].checked = false ;
}
}
</script>
<form name="myform" action="profile-invite.html" method="post">
<b>Your Favorite Scripts & Languages</b><br>
<input type="checkbox" name="list" value="1">aaa@xxx.com<br>
<input type="checkbox" name="list" value="2">bbb@xxx.com<br>
<input type="checkbox" name="list" value="3">ccc@xxx.com<br>
<input type="checkbox" name="list" value="4">ddd@xxx.com<br>
<input type="checkbox" name="list" value="5">eee@xxx.com<br>
<input type="checkbox" name="selectallcb" value="Check All"
onClick="selectFunction(document.myform.selectallcb,document.myform.list)">
<input type="submit" name="formSubmit" value="Submit" />
</form>
“全选”功能工作正常,但使用 print_r 我看到单击提交按钮时,提交的值是我选择的最后一个复选框。例如,如果我单击 5-3-1-2,$_POST 中的值是“2”,而不是其余的。
我意识到我的代码只能注册一个选中的复选框,因此只考虑最后一个。所以我通过在复选框名称后面添加 [] 来重写代码:
<form name="myform" action="profile-invite.html" method="post">
<b>Your Favorite Scripts & Languages</b><br>
<input type="checkbox" name="list[]" value="1">aaa@xxx.com<br>
<input type="checkbox" name="list[]" value="2">bbb@xxx.com<br>
<input type="checkbox" name="list[]" value="3">ccc@xxx.com<br>
<input type="checkbox" name="list[]" value="4">ddd@xxx.com<br>
<input type="checkbox" name="list[]" value="5">eee@xxx.com<br>
<input type="checkbox" name="selectallcb" value="Check All"
onClick="selectFunction(document.myform.selectallcb,document.myform.list)">
<input type="submit" name="formSubmit" value="Submit" />
</form>
现在,当我使用 print_r 检查时,它会注册多项选择。(如果我单击 5-3-1-2,$_POST 中的值现在是 [0]=>5,[1]=>3,[ 2]=>1,[3]=>2.)
但是“全选”复选框不再起作用。我认为是由于 [] 将字段转换为数组。我尝试了各种方法(通过将“document.myform.list”替换为“document.myform.list []”等)到目前为止都没有工作,我将继续试验,但如果有人对如何合并以上2个代码请帮忙。
谢谢
【问题讨论】:
标签: php javascript post checkbox