|
|
|
| Привет! никак не могу написать условие которое придерживалось бы правила, ставить SELECTED элементу из списка если он совпадает, но не ставить остальным. Пишу код:
<?php
echo '<select name="mycity" id="mycity">';
$res = query("SELECT city FROM ".$mybase." ORDER BY `city`"); // old
$selected = "Москва";
foreach ($res as $row) {
if($selected == $row->city) { $selected_on = " selected"; }
echo '<option value="'.$row->city.'"'.$selected_on.'>'.$row->city.'</option>'."\n ";
}
echo '</select>';
?>
|
Понятно что здесь сказано, если город из базы сопадает с городом из переменной то добавляем selected но добавляет ко всем елементам после найденого города.
Как поступить чтобы добавлял только к совпадающему а не ко всем ниже следующим ? | |
|
|
|
|
|
|
|
для: tima2010
(21.10.2011 в 11:16)
| | попробуйте так:
<?php
echo '<select name="mycity" id="mycity">';
$res = query("SELECT city FROM ".$mybase." ORDER BY `city`"); // old
$selected = "Москва";
foreach ($res as $row) {
//if($selected == $row->city) { $selected_on = " selected"; }
echo '<option value="'.$row->city.'"'.($selected == $row->city? " selected":"").'>'.$row->city.'</option>'."\n ";
}
echo '</select>';
?>
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(21.10.2011 в 11:54)
| | Большое спасибо! работает.
А почему так происходит? Все дело в том что цикл прямо в строку прописан? | |
|
|
|
|
|
|
|
для: tima2010
(21.10.2011 в 12:07)
| | ну как вариант еще можно так ваш скрипт переделать, что бы вам понятней было:
<?php
echo '<select name="mycity" id="mycity">';
$res = query("SELECT city FROM ".$mybase." ORDER BY `city`"); // old
$selected = "Москва";
foreach ($res as $row) {
if($selected == $row->city) { $selected_on = " selected"; }
else $selected_on = "";
echo '<option value="'.$row->city.'"'.$selected_on.'>'.$row->city.'</option>'."\n ";
}
echo '</select>';
?>
|
вы обнулять значение переменной забывали. | |
|
|
|
|
|
|
|
для: Lotanaen
(21.10.2011 в 12:10)
| | ясно спасибо! | |
|
|
|