2012-09-28 68 views
0

可能重複:
an option already selected on page load in drop down list and also changeble設置下拉列表中選擇基於MySQL的價值

我有一個下拉列表:

<select name="province"> 
       <option value="Alberta">Alberta</option> 
       <option value="British Columba">British Columba</option> 
       <option value="Manitoba">Manitoba</option> 
       <option value="New Brunswick">New Brunswick</option> 
       <option value="Newfoundland">Newfoundland</option> 
       <option value="N.W. Territories">N.W. Territories</option> 
       <option value="Nova Scotia">Nova Scotia</option> 
       <option value="Ontario">Ontario</option> 
       <option value="Prince Edward Island">Prince Edward Island</option> 
       <option value="Saskatchewan">Saskatchewan</option> 
       <option value="Yukon Territory">Yukon Territory</option> 
       <option value="Quebec">Quebec</option> 
</select> 

形式提交選擇到MySQL數據庫。這是個人資料頁面。當用戶回到此配置文件頁面來更改選擇時,他的選擇(從MySQL獲取)應顯示爲已選中。任何想法如何實現這一目標?

即。再次加載配置文件頁面時,請檢查數據庫,獲取該字段,將其與列表進行比較,然後選擇該值作爲選定值。

+1

看來你已經知道了,究竟是什麼問題,省列表是否也來自數據庫? – jeroen

+1

我在這裏找到了解決方案:http://stackoverflow.com/questions/12068830/an-option-already-selected-on-page-load-in-drop-down-list-and-also-changeble – jsquadrilla

+0

Where is the你到目前爲止的PHP和SQL? – AlexP

回答

0

這裏是我會做什麼:顯示錶單之前

初始化的變量。

if ($_SERVER['REQUEST_METHOD'] == "POST") { // if we're getting info from the form 
    $defaultProvince = $_POST['province']; // set the province to the selected pulldown 
} else { 
    $defaultProvince = "";     // otherwise default to an empty string 
} 

$provinces = ("Alberta",      // set up the provinces array 
       "British Columbia", 
       "Manitoba", 
       "New Brunswick", 
       .... 
      ); 

然後形式顯示程序中我想補充:

echo '<select name="province">\n'; 
foreach ($provinces as $province) {   // run through our array of provinces 
    echo ' <option value="$province"'; 
    if ($province === $defaultProvince) { // if the default province matches this particular array province 
              // then we'll select it 
     echo ' selected="selected"'  // xhtml 1.0 Strict/1.1 compliant 
    } 
    echo '>$province</option>\n'; 
} 
echo '</select>\n'; 
1

你得到了正確的邏輯,只要做到這一點!

<?php 
     $province_array = array('Alberta', 'British Columba', ......, 'Quebec'); 

     echo '<select name="province">'; 
     //get the user's setting with user_id from DB. You should get this before this script. 
     $sql = "SELECT user_province FROM the_table WHERE user_id=$user_id;"; 
     $query = mysql_query($sql, $the_connection) or die (mysql_error()); 
     if($row = mysql_fetch_assoc($query)) { 
      $user_province = $row['user_province']; 
      foreach($province_array as $value) { 
     if ($value == $user_province) { //if the province==the user's setting, make it default 
      echo '<option value="'.$value.'" selected="selected">'.$value.'</option>'; 
     } else { //else, echo it as regular 
      echo '<option value="'.$value.'">'.$value.'</option>'; 
     } 
     } 
    } 
    echo '</select>'; 
    ?> 
  1. 建立與數據庫的連接。
  2. 確保您可以獲得任何類似於「user_id」到 的區別不同用戶省份和數據庫。
  3. 然後是樣品。
相關問題