2012-04-23 23 views
0

私は "option1"と "option2"を持っていて、dropboxは "option1"を選択(マーク)してから "option2"ドロップダウンボックスに "option2"とマークしますが、マークは付けません。PHP:ドロップダウンボックスで選択された値

私はこのページでJavaScriptを避けようとしているので、PHPでしかできないのだろうかと思います。

アドバイスはありますか?ありがとう!

編集。 問題は、ドロップダウンメニューをビルドする前にいくつのオプションがあるのか​​分かりません。データベースのテーブルから配列を生成し、その配列に基づいてオプションを作成します。 コード:

<select name="department"> 
      <?php foreach(bloggModelControler::getDepartments($_SESSION['user']) as $tempDepartment){ 
       if(strcmp($tempDepartment, $department) == 0){ 
        $selected = ".selected='selected'."; 
       }else{ 
        $selected = ".selected=''."; 
       } 
       $dropdown = "<option \"$selected\" value=\"$tempDepartment\">\"$tempDepartment\" Selected</option>"; 
       echo $dropdown; 
}?>   
</select> 

と$部門:

<?php 
     if(isset($_POST['department'])){ 
      $department = $_POST['department']; 
     }else{ 
      $departments = bloggModelControler::getDepartments($_SESSION['user']); 
      $department = $departments[0]; 
     } 
    ?> 
更新質問(コードを含む)

に基づいて更新答えが「選択のためのテキスト変数の内側にピリオドを入れないでください

+0

"のDropboxを選択(マーク) "オプション1" とし、我々は選択し、 "オプション2" を、私はそれがマークしたいです" option2 "をドロップダウンボックスに表示しますが、マークは付けません。"どういう意味ですか?あなたは値を選択しますが、それはいくつかリセットされますか?申し訳ありません。 – squarephoenix

+0

はい、それはリセットされ、まだ "option1"と表示されます – Alexein

+0

... HTML/PHPを添付してください。 – dAm2K

答えて

2

'

if(strcmp($tempDepartment, $department) == 0){ 
       $selected = "selected='selected'"; 
      }else{ 
       $selected = "selected=''"; 
      } 

選択ボックスのHTMLを生成し、あなたのPHPコードで

前の答えは、あなたが選択されているオプションを指定する必要があります。例えば

<select name="selectbox"> 
    <option <?php if ($_POST['selectbox'] == 'option1') echo 'selected="selected"';?>>option1</option> 
    <option <?php if ($_POST['selectbox'] == 'option2') echo 'selected="selected"';?>>option2</option> 
</selected> 

代替構文:

<select name="selectbox"> 
    <option <?= ($_POST['selectbox'] == 'option1')? 'selected="selected"' : '';?>>option1</option> 
    <option <?= ($_POST['selectbox'] == 'option2')? 'selected="selected"' : '';?>>option2</option> 
</selected> 
+0

あなたはこのコードを '<?='と3進演算子で切り捨てることができますか?p –

+0

@LawrenceCheroneそれはそれほど短くはありませんが、同じように。 – AndrewR

+0

+1; p行あたり4バイト –

関連する問題