我正在使用带有复选框的表单。以下是代码的一部分:
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]]
?
答案 0 :(得分:5)
您需要使用$i
而不是i
:
if($_POST[$grandezas[$i]])
$grandezasCount++;
echo $grandezas[$i].".";
此外,表单上未勾选的复选框不会显示在您的POST结果中。这意味着如果您知道密钥将成为一个复选框,您只需要检查变量是否存在:
if( isset($_POST[$grandezas[$i]]) ){
//checkbox was ticked
}