下拉菜单加载并选择特定值

时间:2015-01-10 17:43:37

标签: php html mysql sql drop-down-menu

我有一个允许用户编辑记录的表单。表单中的一个项目是一个下拉菜单,其中填充了数据库中的值。我想知道是否有办法将下拉列表的默认值设置为该记录的数据库中保存的值,而不是自动转到列表中的第一项(我希望这是有道理的)。

<td><label for ="genre">Image Genre: </label></td>
<td><select name="genre">
   <?php echo'<option value="'. $row['genreID'] .'">'. $row['genreName'] .'</option>'; ?>
   <?php while($genre_item = mysqli_fetch_array($genre_sql)){
   echo'<option value="'. $genre_item['id'] .'">'. $genre_item['genreName'] .'</option>';
         }
   ?>
</select></td>

正如您所看到的,我已经选择使用数据库中保存的值填充第一个值。这个问题是 genreName 然后出现两次。

这有什么解决方案吗?

2 个答案:

答案 0 :(得分:0)

<td><label for ="genre">Image Genre: </label></td>
<td><select name="genre">

<?php $genre_item = mysqli_fetch_array($genre_sql); ?>
<?php foreach($genre_item as $item){
 echo'<option value="'. $item['id'] .'">'. $item['genreName'] .'</option>';
 }
 ?>

</select>
</td>

如果我理解你的话......

答案 1 :(得分:0)

请记住这个问题已经超过两年了,它没有一个公认的答案......

使用HTML标记<option>属性选择

  

<强>选择
  如果存在,则此布尔属性指示最初选择该选项。如果元素是未设置属性的multiple元素的后代,则此元素中只有一个元素可能具有所选属性。 1功能

将其与PHP代码集成:

<?php while($genre_item = mysqli_fetch_array($genre_sql)){
$selected = '';
//modify this condition per your needs - 
if ($genre_item['id'] == $row['genreID') {
    $selected = 'selected';
}   
echo'<option value="'. $genre_item['id'] .'" '.$selected.'>'. $genre_item['genreName'] .'</option>';

找到所选选项后,输出应如下所示:

<label for ="genre">Image Genre: </label><br />
<select name="genre">
<option value="ind">Indie</option>
<option value="rock" selected>Rock</option>
<option value="srock">Soft Rock</option>
<option value="tech">Techno</option>
</select>

1 <子> https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option