I Love China

技术·人生

技术服务生活
繁體
9月 18th, 2007

[PHP]处理同名复选框传递的数据

phpPHP好像不能简单的接收HTML里使用同名复选框传递过来的数据,比如下面的form:

HTML Code:
  1. <form name="input" action="addInfo.php" method="get">
  2. I have a bike:
  3. <input type="checkbox" name="vehicle" value="Bike" checked="checked" />
  4. <br />
  5. I have a car:
  6. <input type="checkbox" name="vehicle" value="Car" />
  7. <br />
  8. I have an airplane:
  9. <input type="checkbox" name="vehicle" value="Airplane" />
  10. <br /><br />
  11. <input type="submit" value="Submit" />
  12. </form>

不管如何选择复选框,但在PHP服务器端只能接收到最后一个选中的框的内容,比较郁闷的。为此,修改下HTML代码:

HTML Code:
  1. <form name="input" action="addInfo.php" method="get">
  2. I have a bike:
  3. <input type="checkbox" name="vehicle[]" value="Bike" checked="checked" />
  4. <br />
  5. I have a car:
  6. <input type="checkbox" name="vehicle[]" value="Car" />
  7. <br />
  8. I have an airplane:
  9. <input type="checkbox" name="vehicle[]" value="Airplane" />
  10. <br /><br />
  11. <input type="submit" value="Submit" />
  12. </form>

这样就能接收到所有内容了,在服务端这样处理

php Code:
  1. error_reporting (E_ALL ^ E_NOTICE);
  2. while($item=each($_GET))
  3.     {
  4.         if(is_array($item[1]))
  5.         {
  6.             while(list($key,$var) = each($item[1]))
  7.             {
  8.                 echo $item[0].'='.$var.',';
  9.             }
  10.         }
  11.         else
  12.         {
  13.             echo $item[0].'='.$item[1].',';
  14.         }
  15.     }

随机文章:

Leave a Reply