PHP - 试图获取其值时的复选框问题

时间:2014-03-06 11:42:22

标签: php forms button checkbox isset

所以我做了这个简单的例子,试图让别人向我解释一个我无法理解的问题。

场景是这样的,我在一个表单中有5个复选框,在另一个表单中有一个按钮。我知道我可以用与复选框相同的形式创建按钮,但是为了示例,让我们说它们绝对必须采用不同的形式。这是代码:

<?php
    if(isset($_POST['submit2'])){
        if(isset($_POST['selecao'])){
            print_r($_POST['selecao']);
        }
    }
$names = array("João", "Ana", "Alex", "Carla", "Carolina");
?>

<form action="" method="POST">
    <?php
        $limite = 5;
        for($i=0 ; $i<$limite ; $i++){
            ?><input type="checkbox"
                name="selecao[]"
                value="<?php echo $names[$i]?>"/>
                <?php
        }
    ?>  

</form>
<form action="" method="POST">
    <input type="submit" name="submit2" value="submit"> 
</form>

使用这样的代码,“print_r($ _ POST ['selecao'])”甚至不会执行,但是,如果我按照与复选框相同的形式创建的按钮print_r将正确显示数组。

我的问题是,我怎样才能使用不同的表格来实现这一点,甚至可能? 在此先感谢任何回复:)

1 个答案:

答案 0 :(得分:0)

您有两个<form>标签,就像您提交或按钮或复选框一样。如果您希望他们一起提交,则应在复选框之前开始<form>,并在提交后结束</form>,例如:

<?php
    if(isset($_POST['submit2'])){
        if(isset($_POST['selecao'])){
            print_r($_POST['selecao']);
        }
    }
$names = array("João", "Ana", "Alex", "Carla", "Carolina");
?>

<form action="" method="POST">
    <?php
        $limite = 5;
        for($i=0 ; $i<$limite ; $i++){
            ?><input type="checkbox"
                name="selecao[]"
                value="<?php echo $names[$i]?>"/>
                <?php
        }
    ?>  

    <input type="submit" name="submit2" value="submit"> 
</form>