我正在使用mysql和php填充我的下拉列表。我把里面的东西放在一张表里。我在需要它们的页面的顶部调用它们,然后在需要的地方插入结果。我这样做是为了让最终用户可以从UI更新他们自己的下拉列表。这也省去了我一遍又一遍地打字的麻烦。我已经做了一些下拉列表。通常情况下,选择一个数字等。效果不错。这个新的是单词。我知道sql正在从数据库中获取数据,下拉列表实际上是下拉的,但你在页面上看不到任何东西。查看页面源显示数据在页面中。它只是看得见。嵌入到页面中的代码与编号的下拉列表完全相同。我被难住了。我应该指出,使用代码填充下拉列表是这个小组中的某个人教给我的。对此我深表感谢。
//POPULATE RISK AREA
$sql = "SELECT riskArea FROM tblriskarea ORDER BY riskArea ASC";
$result = $conn->query($sql);
if (!$conn->query($sql)) {
echo "query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
$areaOptions = "";
while($row = $result->fetch_assoc()){
$areaOptions .= '<option value="'. $row['riskArea'].'">';
}
并且在表中显示它的代码是:
<select name="riskarea" style="width:100px" ><?php echo "$areaOptions"; ?></select></td>
但我一无所获。有什么东西向你扑来吗?
您没有放置html结束标记</option>
。使用以下代码:
while($row = $result->fetch_assoc()){
$areaOptions .= '<option value="' . $row['riskArea'] . '">"' . $row['riskArea'] . '"</option>';
}
代码中有两个错误
1) 您的连接变量是$conn
而不是$mysqli
因此,您可以使用检查查询错误
if (!$conn->query($sql)) {
echo "query failed: (" . $conn->errno . ") " . $conn->error;
}
2) 忘记写文本并关闭下拉列表中的选项。这将是
$areaOptions = "";
while ($row = $result->fetch_assoc()) {
$areaOptions .= '<option value="' . $row['riskArea'] . '">"' . $row['riskArea'] . '"</option>';
}
您忘记完成选项标记:
$areaOptions = "";
while($row = $result->fetch_assoc()){
$areaOptions .= '<option value="'.$row['riskArea'].'">'.$row['riskArea'].'</option>';
}
在选择标签中:
<select name="riskarea" style="width:100px" ><?php echo $areaOptions; ?></select></td>
所需更改:
1) <option>
文本未显示。
2) <option>
未关闭。
更正的代码:
//POPULATE RISK AREA
$sql = "SELECT riskArea FROM tblriskarea ORDER BY riskArea ASC";
$result = $conn->query($sql);
if (!$conn->query($sql)) {
echo "query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
$areaOptions = "";
while($row = $result->fetch_assoc()){
$areaOptions .= '<option value="'. $row['riskArea'].'">' . $row['riskArea'] . '</option>';
}
您没有显示文本,因此选项值在选择下拉列表中不可见。
$areaOptions .= '<option value="'. $row['riskArea'].'">';
这应该像这个
$areaOptions .= '<option value="'. $row['riskArea'].'">.'$row['riskArea']'.</option>';