2016-12-09 3 views
-1

У меня есть списки городов в ассоциативных массивах в php. Я использую javascript «on change», чтобы получить значение для каждого элемента. Я хочу установить элемент по умолчанию (я думаю, что рассматриваю возможность использования геолокации в будущем).php javascript select со значением по умолчанию

Вот мои массивы:

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

Благодаря

+1

Возможное дубликат http://stackoverflow.com/ вопросы/7571710/select-dynamic-default-value-in-select –

+0

Привет, спасибо, что напомнили :) – mrale81

ответ

0

Попробуйте это:

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

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

Кстати, за действительное HTML вы должны изменить его к выбранному = "выбрано"

+0

Спасибо, он работает. :) – mrale81