2011-02-10 50 views
0

在頁面上顯示錶單以供用戶編輯信息時,表單由下拉框組成,如何循環顯示下拉框中的選擇以選擇其預定義的mySQL條目?通過下拉循環,如何選擇值?

例如

用戶的國家:澳大利亞

我怎麼會去通過國家列表搜索,即:http://snipplr.com/view/4792/country-drop-down-list-for-web-forms/做:

<option value="AU">Australia</option> 

成爲

<option value="AU" selected="selected">Australia</option> 
+0

不要創建每一個單獨和每個選項的所有國家。嘗試更好的方法爲國家創建數據庫表。通過它們循環回顯下拉。獲取之前選擇的值並與列表進行比較並回顯'selected' – 2011-02-10 06:02:30

回答

3

你可以這樣做:

<?php 
$countries = array('AU' => 'Australia', 'AF' => 'Afghanistan', ...); 
$selected = 'AU'; 
foreach ($countries as $code => $label) { 
    echo '<option value="' . $code . '"'; 
    if ($selected == $code) { 
     echo ' selected="selected"'; 
    } 
    echo '>' . $label . '</option>'; 
} 
?> 

不是最漂亮的,但你明白了。正如Shakti所建議的那樣,如果值在數據庫中而不是在代碼中間的大量數組中,則維護也更容易。

2

可能是這樣的:

<?php 
//your query here 
$sql = "SELECT * FROM countries ORDER BY code ASC"; 
$result_set = $database->query($sql); 

while($country = $database->fetch_array($result_set)) { 
    if ($country["code"] == "AU"){ 
     echo "<option value=\"{$country['code']}\" selected=\"selected\">{$country['name']}</option>"; 
} 
    else { 
     echo "<option value=\"{$country['code']}\">{$country['name']}</option>"; 
    }  
?>