PHP接收复选框信息的简便方法讲解

开发 后端
PHP接收复选框信息在实际应用中并不是非常的简便,给程序员带来了不少的麻烦。我们今天就向大家介绍一种简便的处理方法。

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

#t#假设有这样一个表单:

  1. <form name="form1" id="form1" method="post" action="myphp.php" onSubmit="return Checker()">   
  2. <input type="checkbox" name="item" value="1">1<br>   
  3. <input type="checkbox" name="item" value="2">2<br>   
  4. <input type="checkbox" name="item" value="3">3<br>   
  5. <input type="checkbox" name="item" value="4">4<br>   
  6. <input type="hidden" name="items" value="">   
  7. <input type="submit" value="Submit">   
  8. </form>  

这个PHP接收复选框信息的例子中的表单有四个名字都是item的复选框,当用户单击Submit按钮的时候,Checker函数会被调用,并且如果Checker返回true表单就被提交,返回false表单就不会被提交。这里Checker函数就是我们要编写的预处理函数。在HTML的header部分添加下面的javascript:

  1. <script language="javascript">   
  2. <!--   
  3. function Checker()   
  4. {   
  5.  form1.items.value = "";   
  6.  if ( !form1.item.length ) // 只有一个复选框,form1.item.length = undefined   
  7.  {   
  8.   if ( form1.items.checked )   
  9.    form1form1.items.value = form1.item.value;   
  10.  }   
  11.  else   
  12.  {   
  13.   for ( i = 0 ; i < form1.item.length ; i++ )   
  14.   {   
  15.    if ( form1.item(i).checked ) // 复选框中有选中的框   
  16.    {   
  17.     form1form1.items.value = form1.item(i).value;   
  18.     for ( j = i + 1 ; j < form1.item.length ; j++ )   
  19.     {   
  20.      if ( form1.item(j).checked )   
  21.      {   
  22.       form1.items.value += " "; //用空格做分割符   
  23.       form1.items.value += form1.item(j).value;   
  24.      }   
  25.     }   
  26.     break;   
  27.    }   
  28.   }   
  29.  }   
  30.  return true;   
  31. }   
  32. -->   
  33. </script>   

这样就PHP接收复选框信息可以把所有选中的复选框的value组合成为一个字符串数组,在myphp.php使用这样的语句:

就可以把这些选项分离出来成为数组。需要注意的是选项中的value不能包含分割符(这里是空格)。

责任编辑:曹凯 来源: CSDN
相关推荐

2010-01-25 10:35:12

Android复选框

2009-12-31 17:26:43

Silverlight

2012-01-06 15:18:53

Java

2024-01-12 10:25:51

PyQt6Python复选框

2009-11-17 11:24:00

PHP应用技巧

2020-11-27 07:54:53

Golang GinW

2021-10-25 09:13:07

前端开发技术

2009-12-02 19:08:19

PHP跳转代码

2022-04-26 10:46:53

微软Windows 11

2010-07-19 14:38:56

2016-12-13 10:32:33

EasyUIComboTree任务

2020-12-02 11:18:28

Golang GinW

2020-12-03 09:28:05

Golang GinW

2010-08-29 20:50:06

DHCP功能

2010-08-06 15:11:44

Flex界面控件

2009-07-16 12:58:50

Swing控件

2009-12-04 16:49:38

PHP导出Excel乱

2020-11-24 08:45:04

Active Choi

2015-07-07 10:20:47

WebCSS框架

2009-09-27 10:48:54

UPS电池容量
点赞
收藏

51CTO技术栈公众号