从表单中检索POST复选框数据(如果存在)


Retrieve POST checkbox data from form if they exist

大家好。我有麻烦从表单检索复选框数据。我有一个网站,用户可以在其中添加复选框自己,所以我写出来像这样:

<table style="padding:10px;">
            <?php
            $query_boolean = $DB->prepare("SELECT * FROM moduls WHERE type='boolean'") or die(mysql_error());
            $query_boolean->execute();
            while (($row = $query_boolean->fetch()) != false)
                {
                    ?>
                    <tr>
                        <td>
                        <?php echo $row->name ?>:
                        </td>
                        <td>
                            <?php
                            $s = "";
                            $s .= sprintf('<input type="checkbox" class="textbox" name="boolean_%s" value="yes">%s', $row->id, Yes);
                            $s .= sprintf('<input type="checkbox" class="textbox" name="boolean_%s" value="no">%s', $row->id, No);
                            echo $s;
                            ?>
                        </td>
                    </tr>
                    <?php
                    }
                    ?>

            </table>

现在我有了一个高级搜索,我必须检查每个复选框以查看已选中的内容(无,是,否,或两者都有)。我怎么能得到信息从每个复选框在变量?非常感谢!

要从复选框中获取POST数据,它们必须具有

属性
检查

= "检查"

编辑:如果你有两个像这样的复选框…

<input type="checkbox" checked="checked" class="textbox" name="boolean_yes" value="yes">
<input type="checkbox" class="textbox" name="boolean_no" value="no">

当您提交表单时,带有checked属性的复选框将作为POST发送,而没有checked属性的复选框将不发送。

if(isset($_POST['search'])) {
    $all_checked = array();
    foreach($_POST as $key=>$value){
       if(strpos($key, "boolean_") > -1){
          $all_checked[$key] = $value;
       }
    }
    var_dump($all_checked);
}

这样你将得到$all_checked数组中所有标记框。所有其他复选框都没有标记!

如果要获取复选框的值,则使用复选框名称作为数组

<input type="checkbox" name="email1[]" value="">

并通过

将其放到另一页
<?php
$var2 = $_POST['email1'];
$v=implode(",",$var2);
echo $v;
?>

试试