2015-01-10 28 views
0

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

<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然后出现两次。

有没有解决方法?

回答

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> 

如果我理解你的权利....

0

铭记这个问题是两年多岁,它没有一个公认的答案...

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

selected
如果存在,则此布尔属性指示该选项最初被选中。如果该元素是元素的后代,该元素的multiple属性未设置,则此元素中只有一个元素可能具有selected属性。 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>


https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option