Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: select условие установки selected
 
 автор: tima2010   (21.10.2011 в 11:16)   письмо автору
 
 

Привет! никак не могу написать условие которое придерживалось бы правила, ставить 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 но добавляет ко всем елементам после найденого города.
Как поступить чтобы добавлял только к совпадающему а не ко всем ниже следующим ?

  Ответить  
 
 автор: Lotanaen   (21.10.2011 в 11:54)   письмо автору
 
   для: 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>';

?> 

  Ответить  
 
 автор: tima2010   (21.10.2011 в 12:07)   письмо автору
 
   для: Lotanaen   (21.10.2011 в 11:54)
 

Большое спасибо! работает.

А почему так происходит? Все дело в том что цикл прямо в строку прописан?

  Ответить  
 
 автор: Lotanaen   (21.10.2011 в 12:10)   письмо автору
 
   для: 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>';

?> 

вы обнулять значение переменной забывали.

  Ответить  
 
 автор: tima2010   (21.10.2011 в 12:12)   письмо автору
 
   для: Lotanaen   (21.10.2011 в 12:10)
 

ясно спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования