我试图在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>
答案 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
子句。