[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод через цикл
Гость_Ajax
Здравствуйте!

есть код сформированный через if и echo\

$k=$pole['codkorpus'];
if($k==1){
echo'<SELECT name="korpus">
<OPTION
value="1"SELECTED>Классический</option>
<OPTION
value="2">Слайдер</option>
<OPTION
value="3">Раскладной</option>
</SELECT>
';
}
elseif($k==2){
echo'<SELECT name="korpus">
<OPTION
value="1" >Классический</option>
<OPTION
value="2"SELECTED>Слайдер</option>
<OPTION
value="3">Раскладной</option>
</SELECT>
';
}
elseif($k==3){
echo'
<SELECT name="korpus">
<OPTION
value="1">Классический</option>
<OPTION
value="2" >Слайдер</option>
<OPTION
value="3"SELECTED>Раскладной</option>
</SELECT>
';
}


как можно этот же код представить через цикл?



Спустя 58 минут, 58 секунд (14.04.2010 - 17:31) DeeKeiD написал(а):
$i = 0;
while ($i++ < 50)
{
echo '<select name="korpus">';
echo '<option value="1">Классический</option>';
echo '<option value="2">Слайдер</option>';
echo '<option value="3">Раскладной</option>';
echo '</select>';
}

так ?

Спустя 12 минут, 58 секунд (14.04.2010 - 17:44) Guest написал(а):
DeeKeiD как вам сказать мне нужно именно что бы при разных значениях
$k по разному устанавливалось SELECTED> вывод в цикл я реализовал как

<?php
$options = array(1 => 'Классический',2 => 'Слайдер', 3 => 'Раскладной');
echo'<SELECT name="korpus">';
foreach ($options as $key => $value)
{
echo "<OPTION value=$key>$value</option>";
}
echo'</SELECT>';
?>


но я не могу сделать вывод в зависимости от значения $k вот в чем проблема

Спустя 1 час, 50 минут, 23 секунды (14.04.2010 - 19:34) moskitos80 написал(а):
Вот так попробуй:


$options = array(1 => 'Классический',2 => 'Слайдер', 3 => 'Раскладной');
$pole = array(1,2,3);

function compare($i, $options)
{
for($a=1; $a<= count($options); $a++)
{
if($a==$i)$sel = 'selected';
else $sel = '';
echo '<option '.$sel.' value="'.$a.'" >'.$options[$a].'</option>';
}
}



$count = count($pole);

for($i=1; $i<=$count; $i++)
{
echo'<SELECT name="korpus">';
compare($i, $options);
echo '</SELECT>';
}


Спустя 1 час, 44 минуты, 8 секунд (14.04.2010 - 21:18) Guest написал(а):
moskitos80
большое спасибо но немного не то! тут он выдает сразу 3 списка

Спустя 59 минут, 51 секунда (14.04.2010 - 22:18) moskitos80 написал(а):
Сорри - не так понял задачу, но идея то ясна надеюсь?


if($a==$i)$sel = 'selected';
else $sel = '';
echo '<option '.$sel.' value="'.$a.'" >'.$options[$a].'</option>';


Я так бывает делаю динамически меняющиеся классы стилей.

Спустя 3 минуты, 18 секунд (14.04.2010 - 22:21) sergeiss написал(а):
Гость_Ajax - примерно так:
$values=array(1 =>  'Классический',2 =>  'Слайдер', 3 => 'Раскладной');
$selected=intval( $_POST['korpus']);

echo '<SELECT name="korpus">';
foreach( $values as $k => $val)
{
echo '<option value="'.$k.'" ';
if( $selected == $k ) // если была выбрана текущая опция
echo ' selected ';
echo '>'.$v.'</option>';
}


Иными словами, цикл вывода списка один-единственный, а для нужного элемента выводим selected. Да еще при добавлении элементов в список не нужно изменять код! Т.е. данные для списка можно брать и из БД, список будет формироваться динамически.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.