0

我的网站的 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>

一旦用户提交了详细信息,他们就可以对其进行编辑。

因此,我需要一种方法来选择他们之前选择的选项,因为我有他们选择的选项以 word 形式保存,例如Bedfordshire

我知道我需要将所选单词添加到其中一个选项中,但我想知道是否有比大量案例陈述更好的方法来做到这一点。

谢谢

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基于 a$_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 回答