PHP在$ _POST中使用数组时返回null

时间:2015-05-04 00:50:21

标签: php arrays post

我正在使用带有复选框的表单。以下是代码的一部分:

if(isset($_POST['send'])){                          
    $grandezas = array('tempCheckbox', "umiCheckbox", "uvCheckbox", "ventoCheckbox", "direcaoventoCheckbox", "precipitacaoCheckbox");
    $grandezasCount = 0;
    $tamanhoArray = count($grandezas);
    for($i = 1; $i <= $tamanhoArray; $i++){
        if($_POST[$grandezas[i]])
            $grandezasCount++;
        echo $grandezas[i]."."; // This gives me null values.
    }
echo "<br>".count($grandezas)."<br>";
echo $grandezasCount;
printf("%s", $grandezas[1]);

我有$grandezas数组,其中包含我在表单中使用的复选框的名称(已经选中,它们是正确的)。它们在选中时返回值1。所有形式的其余部分都以类似的逻辑完美地运作。

当我使用时:

echo "<br>".count($grandezas)."<br>";
printf("%s", $grandezas[1]);

它工作正常,但for循环中的echo不断给出空值。

我是否以错误的方式使用$_POST[$grandezas[i]]

1 个答案:

答案 0 :(得分:5)

您需要使用$i而不是i

if($_POST[$grandezas[$i]])
        $grandezasCount++;
echo $grandezas[$i].".";

此外,表单上未勾选的复选框不会显示在您的POST结果中。这意味着如果您知道密钥将成为一个复选框,您只需要检查变量是否存在:

if( isset($_POST[$grandezas[$i]]) ){
    //checkbox was ticked
}