如果一个表单中有多个同名复选框,在提交到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;
}