对于循环&如果声明

时间:2013-05-29 21:43:24

标签: php checkbox echo

我正在用PHP编写这个代码,基本上我有5个复选框,分别用于5个单独的项目,每个项目称为“ItemCheck”,它们的值为0-4。现在我编写了一个包含它的代码,以便显示从这5个检查列表中检查的数字。

形式:

for ($i=0;$i<count(5);$i++){
echo "
<input type='checkbox' name='ItemCheck' value='$i.check'>$i</input><br>"}

PHP流程:

if (isset($_POST['ItemCheck'])){

    for ($o=0;$o<$ItemCount;$o++){

        if($_POST['ItemCheck'] == $o.'.check') {
            echo "Item " . $o . "<br>";

            }
    }
} 
else{ echo "You must select at least one product";}

虽然如果我选中方框#1,2&amp; 3,最终输出只显示“第3项”。现在,无论您选择多少个复选框,它都只显示具有最高值的复选框,而不显示其他复选框。是否有人知道代码有什么问题以及如何使用它以显示所选的每个单独的数字,而不仅仅是具有最高价值的数字?

1 个答案:

答案 0 :(得分:1)

您要做的是设置复选框元素ItemCheck[]的名称,这将使$_POST["ItemCheck"]成为一个数组。

示例:

for ($i=0;$i<count(5);$i++){
    echo "<input type='checkbox' name='ItemCheck[]' value='$i.check'/> $i<br>";
}

需要注意的另一件事是浏览器不会为未选中的复选框发布任何内容,因此我认为您的处理器需要像这样。

<?php
if (isset($_POST['ItemCheck'])){
    for ($o=0;$o<count($_POST['ItemCheck']);$o++){
            echo "Item " . $_POST['ItemCheck'] . "<br>";
    }
} else {
    echo "You must select at least one product";
}
?>

另一件事是确保您的表单将方法设置为POST

相关问题