[PHP]处理同名复选框传递的数据
PHP好像不能简单的接收HTML里使用同名复选框传递过来的数据,比如下面的form:
HTML Code:
- <form name="input" action="addInfo.php" method="get">
- I have a bike:
- <input type="checkbox" name="vehicle" value="Bike" checked="checked" />
- <br />
- I have a car:
- <input type="checkbox" name="vehicle" value="Car" />
- <br />
- I have an airplane:
- <input type="checkbox" name="vehicle" value="Airplane" />
- <br /><br />
- <input type="submit" value="Submit" />
- </form>
不管如何选择复选框,但在PHP服务器端只能接收到最后一个选中的框的内容,比较郁闷的。为此,修改下HTML代码:
HTML Code:
- <form name="input" action="addInfo.php" method="get">
- I have a bike:
- <input type="checkbox" name="vehicle[]" value="Bike" checked="checked" />
- <br />
- I have a car:
- <input type="checkbox" name="vehicle[]" value="Car" />
- <br />
- I have an airplane:
- <input type="checkbox" name="vehicle[]" value="Airplane" />
- <br /><br />
- <input type="submit" value="Submit" />
- </form>
这样就能接收到所有内容了,在服务端这样处理
php Code:
- error_reporting (E_ALL ^ E_NOTICE);
- while($item=each($_GET))
- {
- if(is_array($item[1]))
- {
- while(list($key,$var) = each($item[1]))
- {
- echo $item[0].'='.$var.',';
- }
- }
- else
- {
- echo $item[0].'='.$item[1].',';
- }
- }

Leave a Reply