Писал форму, все ок работает, но раздражает что вывод идет 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 написал(а):
Хм, что никто не подскажет
мб надо на ява скрипте как-то? Просто вопрос к гуглу не сформулировать)

Спустя 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
А если по годам мне надо чтоб по умолчанию был текущий год, я сделал так но тогда года не попорядку, 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>';
}
попробуй так
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
...
Так выводиться
2011
2011
2011
...
Спустя 6 минут, 20 секунд (21.01.2011 - 16:55) inpost написал(а):
Renden
покажи код, как ты выводишь.
покажи код, как ты выводишь.
Спустя 16 минут, 29 секунд (21.01.2011 - 17:11) Renden написал(а):
inpost
так Basili4 его же написал:
так 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 слишком дофига инклудов получаеться, а шаблонизатор я чето даже боюсь попробывать)
Хм..допер)
Подправьте если неправильно.
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>';
}
Подправьте если неправильно.