PHP处理多个同名复选框,并在客户端用javascript来判断

如果一个表单中有多个同名复选框,在提交到php时却只有一个值,而并不像asp那样是一串用逗号分割的值。有一个很简单的方法来解决:将复选框的name后面加上[],例如:

1<input name="ccc" type="checkbox" value="1"/>

改为:

1<input name="ccc[]" type="checkbox" value="1"/>

。这样php将得到一个叫ccc的阵列。但这种方法有个问题,如果您要在客户端对复选框是否被选择、选择了几个用javascript来判断时,javascript会因为复选框的name中含有[]而出错。您可以在表单中加入一个隐含域,用javascript设置它的值。

 1<script language="javascript">   
 2function check()   
 3{   
 4var strchoice="";   
 5for(var i=0;i<document.news.choice.length;i++)   
 6{   
 7if (document.news.choice[i].checked)   
 8{   
 9strchoice=strchoice+document.news.choice[i].value+",";   
10}   
11}   
12if (!document.news.choice.length)   
13{   
14if (document.news.choice.checked)   
15{   
16strchoice=document.news.choice[i].value;+","   
17}   
18}   
19strchoice=strchoice.substring(0,strchoice.length-1);   
20document.news.choiceid.value=strchoice;   
21alert(document.news.choiceall.value);   
22}   
23</script>
 1<html>   
 2...   
 3<form action="test.php" method="post" name="news" onsubmit="check()">
 4<input name="choice" type="checkbox" value="1"/>
 5<input name="choice" type="checkbox" value="2"/>
 6<input name="choice" type="checkbox" value="3"/>
 7<input name="choice" type="checkbox" value="4"/>
 8<input name="choiceid" type="hidden" value=""/>
 9</form>   
10...   
11</html>

【sadly】 于 2000-04-20 09:06:56 加贴在

可以用一组变量名类似的变量,比如: check_1 check_2 check_3,然后在php程序
中使用变变量来处理。

for( $i=1; $i<=3; $i++)
{
$this="check_". $i;
echo $ $this;
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus