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

标签 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]]

最佳答案

您需要使用$i而不是i:

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

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

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

关于PHP 在 $_POST 中使用数组时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30021120/

相关文章:

PHP if/else 简写符号 - 多个条件

javascript - 单击休息按钮时如何休息动态文本框值

php - 按到数字的距离对数组进行排序

arrays - 在 Powershell 中比较数组

php - PHP 中有没有一种方法可以捕获使用 POST 方法传递的所有信息

ruby - 在 Sinatra 中处理 POSTDATA

php - 如何将下拉菜单中的数据显示到文本输入中

javascript - setTimeout 改变超时值

ios - 将闭包获取的值传递给其他类的正确方法是什么?

CodeIgniter POST 变量