0

ドロップダウンボックスを実行しています。たとえば、「option1」と「option2」があり、ドロップボックスで「option1」を選択(マーク)してから「option2」を選択します。「option2」をマークします。ドロップダウンボックスにありますが、マークされていません。

私はこれで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>

および$department:

<?php
        if(isset($_POST['department'])){
            $department = $_POST['department'];
        }else{
            $departments = bloggModelControler::getDepartments($_SESSION['user']);
            $department = $departments[0];
        }
    ?>
4

1 に答える 1

2

更新された質問に基づいて更新された回答(含まれているコード)

'selected'のテキスト変数内にピリオドを入れないでください。

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>
于 2012-04-23T15:25:11.800 に答える