2017-04-04 6 views
0

私は単純なことに苦労していますが、スタックでも同様の質問がありましたが、HTML PHPで事前選択されたオプションの値がドロップダウンで読み込まれました

ユーザーの詳細を編集するためのhtml/phpフォームがあります。既存の情報を編集中であるため、ドロップダウンでは、ユーザの組織をmysqlデータベースから事前にロードする必要があります。データベースの正規化のために、私は組織の詳細を別のテーブルのusersテーブルに置きました。ユーザーのレコードは組織のIDだけを保持しています。

コードはユーザーの情報を取得して編集用のフォームに移入しますが、ユーザーの組織を表示するために組織のドロップダウンを取得することはできません。ユーザーの組織(該当する場合)を事前に選択しておく必要がありますが、変更するオプションのリストはまだあります。

<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を使用して選択することができます。あなたの状況では、現在の組織がユーザーのものであるかどうかをループ内でチェックできます。 「選択された」属性を追加します。

たとえば、ユーザーの組織IDが変数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属性を設定します。

関連する問題