簡體   English   中英

在PHP表單中以單詞形式提供選項,在選擇框中選擇一個選項

[英]Select an option in a select box, given the option in word form in a PHP form

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

一旦用戶提交了詳細信息,他們就可以編輯它們。

因此,我需要一種方法來選擇他們之前選擇的選項,因為我可以選擇以字形保存的選項,例如貝德福德郡

我知道我需要將選中的單詞添加到其中一個選項中,但我想知道是否有更好的方法來執行它而不是大量的case語句。

謝謝

嘗試這樣的事情:

  foreach($places as $place) {
      $selected = $prevSelectionId == $place['id'] ? " selected='selected' " : "";
      echo "<option $selected value='".$place['id']."'>".$place['name']."</option>";
  }
 </select>

您應為每個選項設置選項值以跟蹤該值。

你也應該從數據庫中生成它,然后你可以根據$_GET$_POST設置selected

例如:

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

這不包括您的optgroup但也應該來自數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM