0

英国の郡のリストを含む私のWebサイトのphpフォームに標準の選択ボックスがあります。その例を以下に示します。

<p class='form_title'>County<br>
    <select id="county" name="county">
        <optgroup label="England">
            <option>Bedfordshire</option>
            <option>Berkshire</option>
            <option>Bristol</option>

            ....

            <option>Wiltshire</option>
            <option>Worcestershire</option>
        </optgroup>

        <optgroup label="Wales">
            <option>Anglesey</option>

            ...

            <option>Radnorshire</option>
        </optgroup>

        <optgroup label="Scotland">
            <option>Aberdeenshire</option>

            ...

            <option>Wigtownshire</option>
        </optgroup>

        <optgroup label="Northern Ireland">
            <option>Antrim</option>

            ...

            <option>Tyrone</option>
        </optgroup>
    </select>
</p>

ユーザーが詳細を送信すると、それらを編集できます。

したがって、彼らが選択したオプションがベッドフォードシャーなどの単語形式で保存されていることを考えると、以前に選択したオプションを選択する方法が必要です。

選択した単語をオプションの1つに追加する必要があることはわかっていますが、大規模なcaseステートメントよりも優れた方法があるかどうか疑問に思いました。

ありがとう

4

2 に答える 2

1

次のようなことを試してください:

  foreach($places as $place) {
      $selected = $prevSelectionId == $place['id'] ? " selected='selected' " : "";
      echo "<option $selected value='".$place['id']."'>".$place['name']."</option>";
  }
 </select>
于 2012-09-12T09:10:53.137 に答える
1

値を追跡するには、オプションごとにオプション値を設定する必要があります。

また、データベースからそれを生成する必要があり、またはselectedに基づいて設定できます。$_GET$_POST

例えば:

foreach($county as $name){
    $selected = '';
    if($name == $_GET['name']){
        $selected = ' selected="selected"';
    }
    echo '<option value="'.$name.'"'.$selected.'>'.$name.'</option>';
}

これにはあなたは含まれませんoptgroupが、データベースから取得する必要があります。

于 2012-09-12T09:11:31.933 に答える