[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите с обрабокой формы
Renden
Добрый вечер.
Писал форму, все ок работает, но раздражает что вывод идет 2 раза (т.е выбираем январь, жмем найти, и сверху в выборе параметров январь запоминаеться (ну чтоб показать пользователю что он выбрал) , однако если развернуть список месяцев то мы увидим что январь 2 раза выскочил, понятно почему..) вопрос в том как сделать чтоб этого небыло?

echo '<select name="month">';
if (isset($_POST['month'])) {
$mm = $_POST['month'];
if ($mm == "01") $mm1="январь";
if ($mm == "02") $mm1="февраль";
if ($mm == "03") $mm1="март";
if ($mm == "04") $mm1="апрель";
if ($mm == "05") $mm1="май";
if ($mm == "06") $mm1="июнь";
if ($mm == "07") $mm1="июль";
if ($mm == "08") $mm1="август";
if ($mm == "09") $mm1="сентябрь";
if ($mm == "10") $mm1="октябрь";
if ($mm == "11") $mm1="ноябрь";
if ($mm == "12") $mm1="декабрь";
echo '<option selected value="'.$mm.'">'.$mm1.'</option>';
}
else {
echo '<option selected disabled>все</option>';
}
echo '<option value="1">январь</option>
<option value="2">февраль</option>
<option value="3">март</option>
<option value="4">апрель</option>
<option value="5">май</option>
<option value="6">июнь</option>
<option value="7">июль</option>
<option value="8">август</option>
<option value="9">сентябрь</option>
<option value="10">октябрь</option>
<option value="11">ноябрь</option>
<option value="12">декабрь</option>
</select>




Спустя 1 день, 21 час, 15 минут, 3 секунды (21.01.2011 - 13:45) Renden написал(а):
Хм, что никто не подскажет sad.gif мб надо на ява скрипте как-то? Просто вопрос к гуглу не сформулировать)

Спустя 9 минут, 29 секунд (21.01.2011 - 13:54) Evilsoul написал(а):
А зачем две темы создавать ты уже это писал пару дней назад !!!

Спустя 15 минут, 39 секунд (21.01.2011 - 14:10) Renden написал(а):
Evilsoul
Я и не создавал, я старую поднял, тк вопрос актуален)

Спустя 26 минут, 1 секунда (21.01.2011 - 14:36) kaww написал(а):
если правильно понял, вам нужно что-то вроде этого


echo '<select name="month">';
$mm = array ('Все','Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');

foreach ($mm as $k=>$v) {
$selected = (int) $_POST['month']==$k?' selected':'';
echo '<option value="'.$k.'"'.$selected.' >'.$v.'</option>';
}
echo '</select>';

Спустя 45 минут (21.01.2011 - 15:21) Renden написал(а):
kaww
Да, это я и искал, я главное видел где-то на форуме, тока непомнил где)
Спасибо.

Спустя 26 минут, 14 секунд (21.01.2011 - 15:47) Renden написал(а):
Простите, плохо работаю с массивами(, еще 1 вопрос.
А если по годам мне надо чтоб по умолчанию был текущий год, я сделал так но тогда года не попорядку, 2011 стоит перед 2010

$date_year = date("Y");
$yy = array ($date_year=>$date_year,'2010'=>'2010','2011'=>'2011','2012'=>'2012','2013'=>'2013','2014'=>'2014','2015'=>'2015');

foreach ($yy as $k=>$v) {
$selected = (int) $_POST['years']==$k?' selected':'';
$show .= '<option value="'.$k.'"'.$selected.' >'.$v.'</option>';
}

Спустя 18 минут, 22 секунды (21.01.2011 - 16:06) maurise написал(а):
В данном случае вместо '2010'=>'2010' можно сделать проще

$yy = array ('2010','2011','2012','2013','2014','2015');

foreach ($yy as $v) {
$selected = (int) $_POST['years']==$v?' selected':'';
$show .= '<option value="'.$v.'"'.$selected.' >'.$v.'</option>';
}

Спустя 15 минут, 28 секунд (21.01.2011 - 16:21) Renden написал(а):
maurise
Это понятно,благодарю, но вопрос остаеться что делать для того чтоб по умолчанию был выделен текущий год?

Спустя 9 минут, 50 секунд (21.01.2011 - 16:31) Basili4 написал(а):
$yy = array ('2010','2011','2012','2013','2014','2015');

foreach ($yy as $v) {

$selected = (int) $_POST['years']==$v or (!isset($_POST['years']) && $v=date('Y') )?' selected':'';


$show .= '<option value="'.$v.'"'.$selected.' >'.$v.'</option>';
}

попробуй так

Спустя 17 минут, 31 секунда (21.01.2011 - 16:49) Renden написал(а):
Basili4
Так выводиться
2011
2011
2011
...

Спустя 6 минут, 20 секунд (21.01.2011 - 16:55) inpost написал(а):
Renden
покажи код, как ты выводишь.

Спустя 16 минут, 29 секунд (21.01.2011 - 17:11) Renden написал(а):
inpost
так Basili4 его же написал:

$yy = array ('2010','2011','2012','2013','2014','2015');
foreach ($yy as $v) {
$selected = (int) $_POST['years']==$v or (!isset($_POST['years']) && $v=date('Y') )?' selected':'';
$show .= '<option value="'.$v.'"'.$selected.' >'.$v.'</option>';
}

Спустя 26 минут, 44 секунды (21.01.2011 - 17:38) inpost написал(а):
Оно всё попадает в переменную $show, а выводишь то как?

Спустя 2 дня, 17 часов, 43 минуты, 2 секунды (24.01.2011 - 11:21) Renden написал(а):
Я так и недопер как всеже сделать чтоб по умолчанию был текущий год. Я думаю мб года тоже надо циклом как-то генерировать, ну допустим мне надо на 2 года вперед, и на 2 года назад от текущего года..
inpost
Вывожу как обычно echo $show; в конце скрипта, знаю неправильно загонять html код в переменную но натив синтаксис мня вообще не воткнул, tpl слишком дофига инклудов получаеться, а шаблонизатор я чето даже боюсь попробывать)

Хм..допер)

$dy = date("Y");
$yy = array ($dy-1,$dy++,$dy++);
foreach ($yy as $v) {
if(!isset($_POST['year'])) {$_POST['year'] = date("Y");}
$selected = (int) $_POST['year']==$v?' selected':'';
$show .= '<option value="'.$v.'"'.$selected.' >'.$v.'</option>';
}

Подправьте если неправильно.
Быстрый ответ:

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