PHP不显示所有下拉框

时间:2013-04-29 13:50:52

标签: php

我有四个下拉框,显示来自数据库的信息,但它只显示四个中的两个。 http://www.cupboard2stomach.com/php/get.php?dropdown1=bread&dropdown3=chicken&Submit=Submit这就是它目前的样子。

我的代码有问题吗?

Ingredient 1:<select name= "dropdown1" id = "drop1"/>
    <?php
    while ($line = mysql_fetch_array($result1, MYSQL_ASSOC)) {
    ?> 
    <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option>
    <?php
    }
    ?>

    Ingredient 2:<select name = "dropdown2" id = "drop2"/>
    <?php
    while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) {
    ?> 
    <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option>
    <?php
    }
    ?>

    Ingredient 3:<select name = "dropdown3" id = "drop3"/>
    <?php
    while ($line = mysql_fetch_array($result3, MYSQL_ASSOC)) {
    ?> 
    <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option>
    <?php
    }
    ?>


    Ingredient 4:<select name = "dropdown4" id = "drop4"/>
    <?php
    while ($line = mysql_fetch_array($result4, MYSQL_ASSOC)) {
    ?> 
    <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option>
    <?php
    }
    ?>

4 个答案:

答案 0 :(得分:3)

您正在尝试为选择元素(<select />)使用XML样式自动关闭标记语法,这是错误的,浏览器将忽略/来执行错误恢复。

因此,所有选择元素中都缺少结束标记(</select>)。所以你试图将你的子序列选择元素放在第一个元素中。

即使您可以在任意元素上使用自动关闭标记语法,选项元素也必须是它们所属的select元素的后代!

validator会为你选择这个。

答案 1 :(得分:2)

这是因为您没有关闭select

例如,更改为:

Ingredient 1:<select name= "dropdown1" id = "drop1"/>
    <?php
    while ($line = mysql_fetch_array($result1, MYSQL_ASSOC)) {
    ?> 
    <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option>
    <?php
    }
    ?>
</select>

答案 2 :(得分:1)

关闭您的选择标记

    Ingredient 1:<select name= "dropdown1" id = "drop1"/>
        <?php
        while ($line = mysql_fetch_array($result1, MYSQL_ASSOC)) {
        ?> 
        <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option>
        <?php
        }
        ?>
       </select>
        Ingredient 2:<select name = "dropdown2" id = "drop2"/>
        <?php
        while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) {
        ?> 
        <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option>
        <?php
        }
        ?>
</select>

答案 3 :(得分:0)

因为选择它以/&gt;结尾;它应以&gt;

结尾

w3c验证器提供错误

 self-closing syntax (/>) used on a non-void HTML element. Ignoring the slash and treating as a start tag.

下次您应该使用http://validator.w3.org/检查您的代码。