【问题标题】:getting Checkbox value in php在php中获取复选框值
【发布时间】:2011-10-28 01:17:51
【问题描述】:

当我将带有复选框的 html 表单传递给 php 页面时,当我检索它们时,我会为我选中的所有框获得值 true,而对于未选中的框,我会获得 false。我只需要获取值。

<?php 
$contact=$_POST['contact'];

foreach ($contact as $conid){
   echo $conid
}
?>

【问题讨论】:

  • 复选框总是TRUEFALSE,这就是它们的重点——你到底想要什么值?
  • @DaveRandom:这不是真的。它们要么有分配的值,要么没有设置。
  • @DaveRandom 仅部分正确。复选框还包含一个值,仅在勾选复选框时发送
  • @kissmyface OMG 我不敢相信我已经设法永远不知道这一点。我刚刚尝试过,这是真的,我从来没有费心尝试将value="" 属性添加到复选框之前......我想我会闭嘴...... :-)

标签: php


【解决方案1】:

一种可能的方法是这样设置名称:

<input type='checkbox' name='box[1]'>
<input type='checkbox' name='box[2]'>
<input type='checkbox' name='box[3]'>

这样你就可以在 PHP 中使用

foreach ($_POST['box'] as $id=>$checked){
    if ($checked =='on')
        //process your id
}

我认为第二种方法更干净。在复选框上设置值的属性:

<input type='checkbox' name='box[]' value='1'>
<input type='checkbox' name='box[]' value='2'>
<input type='checkbox' name='box[]' value='3'>

这样您将只收到选中的值:

foreach ($_POST['box'] as $id){
        //process your id
}

【讨论】:

  • 您的第一种方法不正确。 $checked == 'true' 将(总是)返回 false,例如,如果选中了复选框,Chromium 会发送“on”。如果您为复选框设置了值,则会发送该值。使用这些值和您的第二种方法,不仅可以发送 ID,还可以发送关联值。 (例如&lt;input type='checkbox' name='box[1]' value='value-for-ID-1'&gt;
  • 对,FF也发送'on'。我的错误 :) 已编辑
  • 如果没有给出值,你真的不应该依赖发送的字符串。最好只检查发送了哪些名称。
  • 我使用的是第二种方法。总是 :) 但检查名称也有意义。
  • 通常我只需要一个复选框,例如“接受服务条款”,其中使用名称是最简单的方法……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
相关资源
最近更新 更多