在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++ )
    {
     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不能包含分割符(这里是空格)。

在php中验证复选框,布布扣,bubuko.com

时间: 2024-12-16 18:05:32

在php中验证复选框的相关文章

QTableView中嵌入复选框CheckBox 的四种方法总结

搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四种比较适合扩展,它除了可以嵌入复选框,还可以通过paint()绘制其它控件,图片等自定义风格. 第一种方法是:编辑委托法 这种方法直接利用委托中重载createEditor(),激活QCheckBox,这个缺点是必须双击/选中,才能显示CheckBox控件.一般不满足我们实际中的直接显示的需要.可以

C# Word中插入复选框选中符号

object fontname = "Wingdings 2";  object uic = true;    doc.Bookmarks.get_Item(ref lblmark).Range.InsertSymbol(-4014, ref fontname, ref uic, ref missing); C# Word中插入复选框选中符号,布布扣,bubuko.com

jQuery+SpringMVC中的复选框选择与传值

一.checkbox选择 在jQuery中,选中checkbox通用的两种方式: $("#cb1").attr("checked","checked");$("#cb1").attr("checked",true); 对应的jQuery函数,主要完成三个功能: 1.第一个复选框选中或取消选中,则下面的复选框为全选或取消全选: 2.当下面的复选框全部选中时,则将第一个复选框设置为选中,当下面的复选框中有一个没

nodetree中 前面复选框禁用插件

nodetree中 前面复选框的去掉插件 extendTreeCheck.js 1 /** 2 * tree方法扩展 3 * 作者:小雪转中雪 4 */ 5 $.extend($.fn.tree.methods, { 6 /** 7 * 激活复选框 8 * @param {Object} jq 9 * @param {Object} target 10 */ 11 enableCheck : function(jq, target) { 12 return jq.each(function(){

Itext填写pdf中的复选框

使用Acrobat制作模板,在赋值的时候发现一个问题,对于模板中的复选框CheckBox,使用了默认导入值"是",结果复选框内显示的是一个叉而不是一个√. 翻看了很多的资料,也找不到解决的方法,如果有哪位大神知道的,能不能指导一下,不胜感激. 在这里说一下我自己的解决方法: 就是利用反向思维,不是需要在复选框内打勾吗?那么我就先将模板中的复选框全部打上√. 然后再赋值"否",问题可以解决,就是麻烦了很多. 原文地址:https://www.cnblogs.com/c

jquery中input复选框的checked属性

在今日的多选,反选,全选试验中,关于通过jQuery方法来实现复选框的选中与否问题,我有了以下发现: 1.不能通过.css('checked','checked')方法来设置或者获取复选框的checked属性,在控制台打印输出.css('checked'),结果为undefined, 不管在HTML中是否设置了checked='checked'; 2.通过attr添加属性即.attr('checked','abc'),会给HTML中input所在处添加checked='checked'这样的代码

如何在select下拉列表中添加复选框?

近来在给一个公司做考试系统的项目,遇到的问题不少,但其中的几个让我对表单的使用颇为感兴趣,前端程序员都知道,下拉列表有select标签,复选框有checkbox,但是两者合在一起却少有人去研究,当时接到这样的要求时我也蒙了,于是去网上查相关资料,查了好久,查不出个结果,只好自己用纯html css jq去做一个仿下拉列表中自带复选框的效果,代码如下,可直接复制去查看效果, 注:(以下代码为本人自己编写,只是一个小Demo,可以直接复制使用,但代码只是演示其效果和功能,告诉大家如何去写,所以界面可

纯CSS自定义Html中Checkbox复选框样式

原文链接:http://www.lrxin.com/archives-683.html 首先看下效果: 点击演示地址查看实例. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,之后我们会改变它的外观. 要做到这一点需要添加一段代码到你的CSS文件中. /** * 隐藏默认的checkbox */ input[type=checkbox] { visibility: hidden; } 隐藏掉所有的Checkbox复选框后,我们需要添加一个label HTML元素,我们都知道,当点击的有

Java中带复选框的微信牛牛房卡开发的实现和应用

在使用Java Swing开发微信牛牛房卡开发(h5.fanshubbs.com)程序时,很有可能会遇到使用带复选框的微信牛牛房卡开发的需求,但是Java Swing并没有提供这个组件,因此如果你有这个需求,你就得自己动身实现带复选框的树.CheckBoxTree与JTree在两个层面上存在差异:[li]在模型层上,CheckBoxTree的每个结点需要一个成员来保存其是否被选中,但是JTree的结点则不需要.[/li][li]在视图层上,CheckBoxTree的每个结点比JTree的结点多显