【问题标题】:HTML - Selecting a default option in the <select> tagHTML - 在 <select> 标记中选择默认选项
【发布时间】:2012-12-12 17:42:32
【问题描述】:

我有一个城市列表。

<select name="cities">
    <option value="nc">New city..</option>
    <option value="quetta">Quetta</option>
    <option value="karachi">Karachi</option>
    <option value="islamabad">Islamabad</option>
    <option value="khyber pukhtun khuan">Khyber Pukhtun Khuan</option>
    <option value="multan">Multan</option>
    <option value="murree">Murree</option>
    <option value="gwadar">Gwadar</option>
    <option value="gujranwala">Gujranwala</option>
    <option value="faisalabad">Faisalabad</option>
    <option value="peshawar">Peshawar</option>
</select>

我有一个数据库,其中存储了用户所在的城市。现在我正在制作一个页面,用户将在其中更新他的城市,为此我希望用户在打开页面时看到他的城市已经被选中。简而言之,我希望根据数据库返回的值选择一个选项。我使用 php 作为语言

我有一个解决方案,但还没有实施,因为它没有效率!任何简单有效的方法将不胜感激。

提前致谢:)

【问题讨论】:

  • 您能否提供显示完整城市列表的PHP 代码。

标签: php html


【解决方案1】:

一种可能的解决方案是将您的代码结构更改为以下内容:

// hardcoded cities or perhaps loaded from elsewhere
$cities = [
    "nc"        => "New city...",
    "quetta"    => "Quetta",
    "karachi"   => "Karachi"
    // ...
];

// user's city fetched from the database
$userCity = "quetta";

echo '<select name="cities">';
foreach ($cities as $key => $value)
{
    echo '<option ' . ($userCity === $key ? 'selected' : '') . ' value="' . $key . '">' . $value . '</option>';
}
echo '</select>';

【讨论】:

    【解决方案2】:

    使用 JQuery

    $(function() {
        $("#gate").val('Gateway 2');
    });
    

    Working Demo

    from here

    【讨论】:

      【解决方案3】:
      //first you have a specific city of a user
      
      $user_city = 'city-name';
      
      //Then you have a list of all cities available (probably from the database,
      // but I use array here as an example)
      
      $cities = array('city1','city2','city3');
      
      <select name="cities">
         <?php
             foreach ( $cities as $city ) {
                 if ( $city == $user_city ) {
                    echo "<option value='".$city."' selected>$city</option>";
                 } else {
                    echo "<option value='".$city."'>$city</option>";
                 }
             }
         ?>
      </select>
      

      【讨论】:

        【解决方案4】:

        将您的城市列表放入数组而不是硬编码的 HTML。

        循环遍历列表并为每个元素输出option

        当您这样做时,与从数据库中检索到的值进行比较。如果匹配,请添加 selected

        【讨论】:

          【解决方案5】:

          只需检查数据库中的值并使用 javascript 或 php 将选定的选项添加到该选项

           <option value="murree" selected >Murree</option>
          

          【讨论】:

          • 是的,我知道,但是我必须在每个
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-02-20
          • 2013-04-11
          • 1970-01-01
          • 1970-01-01
          • 2016-01-07
          • 2023-03-14
          • 1970-01-01
          相关资源
          最近更新 更多