根据先前的值选择下拉值,提交新的值

时间:2018-01-17 09:02:34

标签: php mysql

我使用以下代码从数据库表中选择所有值并将其放在下拉列表中。这是代码:

<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表中没有添加新值。但每当我添加新值时,我必须手动更新编辑代码。有没有办法,所以下拉前一个选择在编辑页面自动更新。

2 个答案:

答案 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>";
        }
?> 
相关问题