2011-09-07 109 views
0

我有一個PHP表格,我用它來編輯MySQL數據庫中的記錄,它有一個下拉列表中的值我想設置選項該數據庫是在列表中的第一個,這樣,如果用戶不希望更改選項,則數據庫將不會被覆蓋使用默認選項PHP選項下拉列表選項一個存儲在數據庫中

任何一個能提出一個非常簡單的解決方案?

基於評論我需要幫助的設置選擇價值的能力我的HTML選擇

<select id="inputRegion" name="inputRegion"> 
<option name="inputRegion" id="inputRegion" value="Scotland">Scotland</option> 
<option name="inputRegion" id="inputRegion" value="North West">North West</option> 
<option name="inputRegion" id="inputRegion" value="North East">North East</option> 
<option name="inputRegion" id="inputRegion" value="Yorkshire and Humberside">Yorkshire & Humberside</option> 
<option name="inputRegion" id="inputRegion" value="East Midlands">East Midlands</option> 
<option name="inputRegion" id="inputRegion" value="East Anglia">East Anglia</option> 
<option name="inputRegion" id="inputRegion" value="London">London</option> 
<option name="inputRegion" id="inputRegion" value="South East">South East</option> 
<option name="inputRegion" id="inputRegion" value="South West">South West</option> 
<option name="inputRegion" id="inputRegion" value="Wales">Wales</option> 
<option name="inputRegion" id="inputRegion" value="West Midlands">West Midlands</option> 
<option name="inputRegion" id="inputRegion" value="Northern Ireland">Northern Ireland</option> 
</select> 

我的PHP來自一個查詢,然後可以得到利用當前記錄的區域;

<?php echo $contact['Region']; ?> 
+1

正確的解決方法是將'selected =「selected'屬性添加到相關的'

+1

擺脫所有這些重複的id,我懷疑您需要在任何選項值的名稱或ID參數,只是讓他們在選擇 – MattP

回答

2

如果它是一個小的下拉這是快速和容易

<label>Type: </label> 
       <?php 
        if(isset($item->type_id)) 
         $tid = $item->type_id; 
        else 
         $tid = 1; // Set this to your preferred default 
       ?> 
       <select name="type"> 
        <option value="1" <?php if($tid == 1) echo ' selected' ?>>Type 1</option> 
        <option value="2" <?php if($tid == 2) echo ' selected' ?>>Type 2</option> 
        <option value="3" <?php if($tid == 3) echo ' selected' ?>>Type 3</option> 
       </select> 

如果它是一個更大的下拉寫一個PHP函數使用迭代方法

編輯*是創建下拉這個權利,因爲它現在默認爲$ tid

     <?php 
           if(isset($contact['Region'])) 
            $tid = $contact['Region']; 
           else 
            $tid = 'South East'; // Set this to your preferred default 
          ?>   
          <select id="inputRegion" name="inputRegion"> 
            <option name="inputRegion" id="inputRegion" value="Scotland" <?php if($tid == 'Scotland') echo ' selected' ?>>Scotland</option> 
            <option name="inputRegion" id="inputRegion" value="North West" <?php if($tid == 'North West') echo ' selected' ?>>North West</option> 
            <option name="inputRegion" id="inputRegion" value="North East" <?php if($tid == 'North East') echo ' selected' ?>>North East</option> 
            <option name="inputRegion" id="inputRegion" value="Yorkshire and Humberside" <?php if($tid == 'Yorkshire and Humberside"') echo ' selected' ?>>Yorkshire & Humberside</option> 
            <option name="inputRegion" id="inputRegion" value="East Midlands" <?php if($tid == 'East Midlands') echo ' selected' ?>>East Midlands</option> 
            <option name="inputRegion" id="inputRegion" value="East Anglia" <?php if($tid == 'East Anglia') echo ' selected' ?>>East Anglia</option> 
            <option name="inputRegion" id="inputRegion" value="London" <?php if($tid == 'London') echo ' selected' ?>>London</option> 
            <option name="inputRegion" id="inputRegion" value="South East" <?php if($tid == 'South East') echo ' selected' ?>>South East</option> 
            <option name="inputRegion" id="inputRegion" value="South West" <?php if($tid == 'South West') echo ' selected' ?>>South West</option> 
            <option name="inputRegion" id="inputRegion" value="Wales" <?php if($tid == 'Wales') echo ' selected' ?>>Wales</option> 
            <option name="inputRegion" id="inputRegion" value="West Midlands" <?php if($tid == 'West Midlands') echo ' selected' ?>>West Midlands</option> 
            <option name="inputRegion" id="inputRegion" value="Northern Ireland" <?php if($tid == 'Northern Ireland') echo ' selected' ?>>Northern Ireland</option> 
          </select> 
+0

基於上面你可以擴展這個?感謝到目前爲止看好! –

+0

還有什麼你需要知道,你需要改變$用品 - > TYPE_ID到任何您的變量是具有從數據庫中查詢到的值 – MattP

+0

這就是我需要知道的感謝! –

0

你可以使用

while($row = mysql_fetch_assoc($result)){ 
    $selected = ""; 
    if($row['id'] == $curValue){ 
     $selected = "selected=\"selected\""; 
    } 
    echo "<option value=\"{$row['id']}\" $selected>{$row['name']}</option> 
} 

你更新你的問題後,似乎MattP的回答適合您的情況更好。

+0

這是我提到的迭代方法,如果所有的下拉選項都保存在數據庫中,這會更好。 – MattP

+0

我一直在尋找這樣的東西。我有一個表格中的國家列表,並希望返回值顯示爲選中狀態。你能告訴我怎麼做嗎?謝謝 –

+0

上面的代碼迭代MySQL結果集,如果你想遍歷一個數組,方法保持不變,只需使用一個foreach循環即可。 –

相關問題