php javascript select 默认值

php javascript select with default value

我在 php 的关联数组中有一些城市列表。我使用 javascript "on change" 来获取每个项目的价值。我想将一个项目设置为默认值(我想我将来会考虑使用地理位置)。

这是我的数组:

// Array lists
$city_array = array(
    array('id' => '1', 'name' => 'Aaaa'),
    array('id' => '2', 'name' => 'Bbbb'),
    array('id' => '3', 'name' => 'Cccc'),
    array('id' => '4', 'name' => 'Dddd'),
    array('id' => '5', 'name' => 'Eeee'),
);
$json_city = json_encode($city_array);

还有我的 php 函数:

// Decode
$cities = json_decode($json_city);
function display_cities() {
    global $cities;
    $output = '<select id="citylists" onChange="onSelectCity()">';
    foreach( $cities as $city ) {
        $output .= '<option class="itemcity" value="'.$city->id.'">'.$city->name.'</option>';
    }
    $output .= '</select>';
    $output .= '<script type="text/javascript">
        function onSelectCity() {
            var cityLists = document.getElementById("citylists");
            console.log(cityLists.value);
        }
        window.onload = function() {
            onSelectCity();
        }
    </script>';
    echo $output;
}

我希望输出是这样的(打印在HTML):

<select id="citylists">
    <option class="itemcity" value="1">Aaaa</option>
    <option class="itemcity" value="2">Bbbb</option>
    <option class="itemcity" value="3" selected>Cccc</option>
    <option class="itemcity" value="4">Dddd</option>
    <option class="itemcity" value="5">Eeee</option>
</select>

如你所见,我设置的默认值为<option class="itemcity" value="3" selected>Cccc</option>

如何在动态 php 循环中执行此操作?

谢谢

试试这个:

foreach( $cities as $city ) {
    $selected = ($city->id == 3)?' selected ':null;

    $output .= '<option class="itemcity" value="'.$city->id.'"'.$selected.'>'.$city->name.'</option>';
}

顺便说一下,对于有效的 HTML 你应该把它改成 selected="selected"