background image

PHP 开发中接收复选框信息的方法

PHP 接收多个同名复选框信息不像 ASP 那样自动转换成为数组,这给使用带来了一定不
便。但是还是有解决办法的,就是利用 javascript 做一下预处理。多个同名复选框在
javascript 中还是以数组的形式存在的,所以在表单提交之前可以利用 javascript 把复选框
中的信息组合成一个字符数组赋值给表单中的隐藏元素,然后用 PHP 中的 explode 函数
解析此数组,这样就可以实现复选框信息的传递了。下面举例说明。
 
  假设有这样一个表单:

< form   name="form1"   id="form1"   method="post"   action="myphp.php"   onSubmit="return 
Checker()">
<input type="checkbox" name="item" value="1">1<br>
<input type="checkbox" name="item" value="2">2<br>
<input type="checkbox" name="item" value="3">3<br>
<input type="checkbox" name="item" value="4">4<br>
<input type="hidden" name="items" value="">
<input type="submit" value="Submit">
</form>
  这个表单有四个名字都是 item 的复选框,当用户单击 Submit 按钮的时候,Checker
函数会被调用,并且如果 Checker 返回 true 表单就被提交,返回 false 表单就不会被提交。
这里 Checker 函数就是我们要编写的预处理函数。在 HTML 的 header 部分添加下面的
javascript:

<script language="javascript">
<!--
function Checker()
{
 form1.items.value = "";
 if ( !form1.item.length ) // 只有一个复选框,form1.item.length = undefined
 {
  if ( form1.items.checked )
   form1.items.value = form1.item.value;
 }
 else
 {
  for ( i = 0 ; i   

< form1.item.length ; i )

  {
   if ( form1.item(i).checked ) // 复选框中有选中的框
   {
    form1.items.value = form1.item(i).value;
    for ( j = i 1 ; j   

< form1.item.length ; j )