我使用以下代码从数据库表中选择所有值并将其放在下拉列表中。这是代码:
<select name="dis_name">
<?php
$qu="Select DISTINCT name from root";
$res=mysqli_query($con,$qu);
while($r=mysqli_fetch_row($res))
{
echo "<option value='$r[0]'> $r[0] </option>";
}
?>
根据以前的代码,选择并提交一个值。我想在另一页的下拉列表中显示之前选择的值,因此我使用以下代码:
<select name="dis_name">
<option value="RAM"<?php echo $r20 == "RAM" ? " selected" : ""; ?>>RAM</option>
<option value="ROHAN"<?php echo $r20 == "ROHAN" ? " selected" : ""; ?>>ROHAN</option>
</select>
此代码工作正常,直到DB表中没有添加新值。但每当我添加新值时,我必须手动更新编辑代码。有没有办法,所以下拉前一个选择在编辑页面自动更新。
答案 0 :(得分:0)
如果我得到你想要的东西(假设$ r20是之前选择的值:
<?php
$qu="Select DISTINCT name from root";
$res=mysqli_query($con,$qu);
while($r=mysqli_fetch_row($res))
{
echo "<option value='$r[0]'";
if($r[0]==$r20){echo 'selected="selected"';}
echo "> $r[0] </option>";
}
?>
这样,选择将显示为选中的匹配$ r20值的选项。
顺便说一句,你应该在你的代码中使用id。这样,您也可以拥有多个具有相同名称(但ID不同)的用户。使用DISTINCT时,如果您有多个具有相同名称的用户,则只能获得一个。答案 1 :(得分:0)
在循环中添加条件,例如:
<?php
while($r=mysqli_fetch_row($res))
{
echo "<option value='$r[0]'";
if ($r[0] == $r20) echo " selected";
echo "> $r[0] </option>";
}
?>