2015-01-10 30 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