在php和html中使用while循环创建多个复选框

时间:2014-03-30 17:46:24

标签: php html checkbox

我试图在PHP中使用while循环在html中创建多个复选框。

while($counter != 5){

?>

<Input type = 'Checkbox' Name = '<?php echo '$foods[$counter]'; ?>' value ="yeeeey">

<?php 

echo $foods[$counter];
echo "&nbsp;&nbsp;&nbsp;"; 

 ?>

<input type="text" class="textfield" value="" name="<?php echo $foods_val[$counter]; ?>"
onkeypress="return isNumber(event)" style="width:55px";>
<P>

<?php

$counter++;
}

$counter = 0;

?>

<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Input order">
</FORM>

暂时不介意文字字段。基本上,我试图根据数组创建多个带有名称和值的复选框。

$foods = array($rw, $mrd, $rd, ... , $bb);

并且每个变量都包含一个字符串。 我有一个代码来检测检查了哪些复选框

if(isset($_POST['Submit1'])){
    while($counter != 21){
        if(isset($_POST['$foods[$counter]'])){
            echo "yeeeeeeeeeeeeeeeeeeeeey";
        }
        $counter++;
    }
}

然而,当我尝试检查一些盒子时,字符串&#34;yeeeeeeeeeeeeeeeeeeeeeeeeeeée;&#34;永远不会打印。似乎$ _POST [&#39; $ foods [$ counter]&#39;]是空的,即使它应该包含&#34; yeeeeeey&#34;。你怎么解决这个?抱歉蹩脚的格式化,仍然习惯它。感谢

小更新。 $ foods [$ counter]中的所有变量现在都包含相同的字符串:&#34; food&#34;。我现在的问题是,所有复选框的行为都像是经过检查并且包含相同的值&#34; yeeey&#34;

3 个答案:

答案 0 :(得分:1)

我认为,您的问题至少与您在$_POST['$foods[$counter]']中使用的引号有关。如果您使用&#34;双引号&#34;,以$开头的PHP变量将替换为它们的值,但如果使用&quot;单引号&#39;,则它们不是。因此,您尝试访问'$foods[$counter]'的密钥$_POST(字面意思!)。

用&#34;双引号替换它们&#34;可能有效,但由于$foods包含字符串,因此您根本不需要引号:$_POST[$foods[$counter]]

如果仍然不起作用,则代码中可能存在更多缺陷。暂时,给它一个特里;)

答案 1 :(得分:1)

这是通过php生成复选框数组的代码。


<?php
    $i = 0;
    while($i < 5) {
        echo "<input type='checkbox' name='hobbies[]' />";
        $i++;
    }

此代码将创建5个复选框的数组...您不需要指定计数器变量 你做了......

<Input type = 'Checkbox' Name = '<?php echo '$foods[$counter]'; ?>' value ="yeeeey">

答案 2 :(得分:0)

<input type="text" class="textfield" value="" name="food_vals[]" onkeypress="return isNumber(event)" style="width:55px";>

然后在服务器端:

foreach ($_POST['food_vals'] as $value) {
     echo $value;
}