我正在使用带有复选框的表单。这是部分代码:
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/