繁体   English   中英

HTML-在 <select>标签

[英]HTML - Selecting a default option in the <select> tag

我有一个城市清单。

<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作为语言

我有一个解决方案,但尚未实现,因为它没有效果! 任何简单有效的方式将不胜感激。

提前致谢 :)

//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>

只需检查数据库中的值,然后使用javascript或php将所选内容添加到该选项

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

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

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

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

一种可能的解决方案是按照以下方式将代码结构更改为更多形式:

// 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>';

与JQuery

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

工作演示

从这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM