从数据库显示到下拉列表

时间:2011-07-05 12:40:59

标签: php database

我已将值从下拉列表存储到数据库。我想回显一下我在编辑表单中的下拉列表中显示的相同值。我怎么能在PHP中实现呢?

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

我使用选择值存储在数据库中 但我不知道在同一下拉列表中显示该值

6 个答案:

答案 0 :(得分:1)

使用类似的东西:

       <?
         $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变量,因此所有输入的字段都可以包括在内,用户无需重新指定他们之前填写​​的字段。这基本上意味着您的表单模板,插入条目和编辑条目可以是相同的!

答案 1 :(得分:1)

嗯,你可以这样做

   $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

答案 2 :(得分:0)

如果您能够将db数据放入数组中,您可以像这样使用它们:

<?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>";
?>

答案 3 :(得分:0)

我使用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>";
    }
    ?> 

答案 4 :(得分:0)

假设您可以将数据库中的值选择为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建议的内容相似的内容

答案 5 :(得分:-1)

<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>