2017-04-04 167 views
0

我正在爲簡單的事情苦惱,我在Stack上發現了一個類似的問題,但我無法使解決方案正常工作。HTML php預選選項值在下拉列表中加載

我有一個HTML/PHP的形式來編輯用戶的詳細信息。因爲它正在編輯已經存在的信息,所以下拉菜單需要從mysql數據庫預加載一個用戶的組織。由於數據庫正常化,我將組織詳細信息放在用戶表的單獨表中,因此用戶的記錄只保存其組織的標識。

該代碼獲取用戶信息並填充表單進行編輯,但我無法獲取組織下拉列表來顯示用戶的組織。我需要它預先選擇了用戶的組織(如果適用),但仍然有選項列表來改變它。

<td align="right">Organisation:</td> 
      <td> 
      <select name="user_org"> 
       <option>Select the organisation</option> 

       <?php 

        //query to get the organisations from the db 
        $get_org = "SELECT * FROM organisations"; 

        $run_org = mysqli_query($con, $get_org); 

        while ($row_org=mysqli_fetch_array($run_org)){ 

         $org_id = $row_org['org_id']; 
         $org_name = $row_org['org_name']; 


        echo "<option value='$org_id';>$org_name</option>"; 
        }?> 


      </select> 
+0

請複製全部代碼,以便我們可以查看錶單提交方式 – Hossam

回答

0

默認情況下,您可以選擇一個選項作爲默認選項the "selected" attribute。在你的情況下,你可以在循環中檢查當前組織是否是用戶的組織。當它添加「selected」屬性時。

例如,假設您的用戶的組織標識存儲在變量user_org中。

while ($row_org=mysqli_fetch_array($run_org)){ 
    $org_id = $row_org['org_id']; 
    $org_name = $row_org['org_name']; 

    echo "<option value='$org_id'"; 
    if($org_id === $user_org) echo " selected"; 
    echo ">$org_name</option>" . PHP_EOL; 
}?> 

然後,如果組織的id與用戶的ID匹配,則該選項將被默認選中。

+0

完美工作,非常感謝! – bevc

0

嘗試這樣:

while ($row_org=mysqli_fetch_array($run_org)) 
{ 
    $org_id = $row_org['org_id']; 
    $org_name = $row_org['org_name']; 

    $selected = ''; 
    if($org_id == $already_selected_value) 
    { 
     $selected = 'selected="selected"'; 
    } 

    echo <option value="'.$org_id.'" '.$selected.'>'.$org_name.'</option>'; 
} 

說明:最初$selected是空白的,但是當條件爲真,將其值設置的optionselected屬性做出選擇了該選項默認。

相關問題