在html中使用php代码动态加载下拉列表

时间:2016-03-02 05:07:39

标签: php html mysql

我试图在html中使用php代码从数据库中获取内容以填充下拉菜单的值(见下文)。当我自己运行php脚本(test.php)时,我得到了所有预期的值。当嵌套在html中时,我在“选择一个物种”下只得到一个空白值。我希望这会多次运行while循环,因为返回了大约7个值,我还希望内容包含从表中派生的数据。

我正在尝试的可能是正确的? 它只是代码错误(日志中没有错误弹出)

<label for="select">Species Observed : </label>
<select name="select" class="textfields" id="species">
    <option id = "0">-- Select a Species -- </option>
    <?php
        $con = mysqli_connect("localhost","xxx","xxxx","databases");
        $result = mysqli_query($con, "SELECT * FROM bc_species WHERE 1"); 
        while ($row = $result->fetch_assoc()){
     ?>
     <option><?php echo $row['species'];?></option> 
     <?php } ?>
</select>

4 个答案:

答案 0 :(得分:1)

    <option><?php echo $row["species"]; ?></option>            

答案 1 :(得分:0)

<?php 
        $optionData = '<option id = "0">-- Select a Species -- </option>';

        $con = mysqli_connect("localhost","xxx","xxxx","databases");
        $result = mysqli_query($con, "SELECT * FROM bc_species WHERE 1"); 
        while ($row = $result->fetch_assoc()){
          $optionData .= "<option>".$row['species']."</option>" ;
        } 
?>
<label for="select">Species Observed : </label>
<select name="select" class="textfields" id="species">
    <?php echo $optionData;?>
</select>

答案 2 :(得分:0)

//将获取的数据放在数组上然后像这样循环它们

<?php 
                        foreach ($list as $data  => $item) {
                    ?>
                        <option value="<?php echo $data?>">
                            <?php echo $data?>
                        </option>
                   <?php
                        }
                    ?>

答案 3 :(得分:0)

这应该有效:

<label for="select">Species Observed : </label>
<select name="select" class="textfields" id="species">
    <option id = "0">-- Select a Species -- </option>
    <?php
        $con = mysqli_connect("localhost","xxx","xxxx","databases");
        $result = mysqli_query($con, "SELECT * FROM bc_species"); 
        while ($row = $result->fetch_assoc()){
           echo '<option>'. $row["species"].'</option> 
     } ?>
</select>

您没有遍历HTML <option>标记中的值,因此我将这些值移到了while循环中。 (注意PHP部分包括回显那些标签)。

我还删除了不必要的&#34; SQL注入&#34;查询中的where 1子句。