当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP开发中接收复选框信息的方法

PHP
php面向对象全攻略 (十五) 多态的应用
php面向对象全攻略 (十六) 对象的串行化
php面向对象全攻略 (十七) 自动加载类
PHP parse_url 一个好用的函数
PHP 字符串分割和比较
全世界最小的php网页木马一枚 附PHP木马的防范方法
PHP 日期加减的类,很不错
PHP 日期时间函数的高级应用技巧
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Ha0k 0.3 PHP 网页木马修改版
PHP iconv 函数转gb2312的bug解决方法
关于页面优化和伪静态
使用zend studio for eclipse不能激活代码提示功能的解决办法
PHP 身份验证方面的函数
基于OpenCV的PHP图像人脸识别技术
用mysql触发器自动更新memcache的实现代码
php 数学运算验证码实现代码
PHP网站开发方案实例
PHP教程:挖掘细节提升网站性能
搜索引擎技术核心揭密(PHP)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 220 ::
收藏到网摘: n/a

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++ )
    {
     if ( form1.item(j).checked )
     {
      form1.items.value += " "; //用空格做分割符
      form1.items.value += form1.item(j).value;
     }
    }
    break;
   }
  }
 }
 return true;
}
-->
</script>


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


$items = explode(" ", $HTTP_POST_VARS["items"]);


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