显示从数据库到下拉列表


display from database to dropdown list

我已经将下拉列表中的值存储到数据库中。我想在编辑表单的下拉列表中显示相同的值。我如何在php中实现这一点?

Region
<select name="stf_region">
<option>Select</option>
<option value="1">MDU</option>
<option value="2">TMM</option>
</select>

我已使用select的值存储在数据库中但我不知道在相同的下拉中显示该值

使用类似的东西:

       <?
         $sql = "SELECT id, description FROM dropDownTable";
         $rs = mysql_query($sql);
       ?>
       <select name="dropDown">
         <option value="-1">Please select...</option>
       <? while ($obj = mysql_fetch_object($rs)) { ?>
         <option value="<?= $obj->id; ?>" <? if ($data['downDown'] == $obj->id) echo "SELECTED"; ?>>
           <?= $obj->description; ?>
         </option>
       <? } ?>
       </select>

请注意,$data需要设置为包含正在编辑的实体的属性的关联数组。此代码非常灵活,因为在用户可能提交了不完整表单的表单中,$data可以设置为$_POST变量,因此可以包括所有输入的字段,而无需用户重新指定他们以前填写的字段。这基本上意味着表单模板、插入条目和编辑条目可以是相同的!

你可以这样做

   $query = "select id, label from lookup_table";
   $result = mysql_query($query);
   $html = "<select name='yourname'><option value="">Please select...</option>";
   while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $html .= "<option value='$row[id]'>$row[label]</option>";
   }
   $html = "</select>";
   echo ($html);//Display the select in the page

如果您能够将数据库数据获取到数组中,您可以像这样使用它们:

<?php
$options = array('label 1' => 'value 1', 'label 2' => 'value 2');
echo "<select name=somename>";
foreach($options as $key => $value){
    echo "<option value=" . $value . ">" . $key . "</option>";
}
echo "</select>";
?>

i使用COOKIE来匹配在编辑表单时应该选择的值。

  <?php
    while($result_row=mysql_fetch_array($result)){
    if ( $_COOKIE['MY_COOKIE'] == $result_row[importance_level_id )
    {
    echo "<option SELECTED='"SELECTED'" value=$result_row[importance_level_id]>$result_row[importance_level]</option>";
    }
    else
    {
    echo "<option value=$result_row[importance_level_id]>$result_row[importance_level]</option>";
    }
    ?> 

假设您可以将数据库中的值选择为PHP变量(比如$region(,我认为您刚刚完成

Region
<select name="stf_region">
<option>Select</option>
<option value="1"<?php echo ($region == '1') ? ' selected="selected"' : ''; ?>>MDU</option>
<option value="2"<?php echo ($region == '2') ? ' selected="selected"' : ''; ?>>TMM</option>
</select>

这是我认为你所问问题的最简洁的答案。然而,这是一个非常具体的答案,并假设您的下拉值是硬编码的,不会真正改变。

如果你想要一个更灵活的设置,从数据库中检索下拉列表的值,你正在寻找更多类似Gordon Murray Dent在上建议的东西

<div class="form-group has-success col-md-6">
    <label class="control-label" for="state-success">Select Buyer</label>
 <select id="state-success" class="form-control ">
         <?php
   $sql="SELECT full_name FROM `new_customer`";
    $data=mysqli_query($dbcon,$sql);
    ?>
       <option>Select byer...</option>
   <?php while($row1=mysqli_fetch_array($data)){?>
       <option value="<?php echo $row1['full_name'];?>"><?php echo $row1['full_name'];?></option>
        <?php } ?> 
     </select>