<form action='update_user.php' method='post'>
<select name="b_month">
<?php
//Array of b_month for selectbox
$aMonths = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12');
$dbmonth = $myrow['b_month']; //
foreach ($aMonths as $month)
{
if($month == $dbmonth) {
echo "<option value=\"$month\" SELECTED>$month</option>";
} else
{
echo "<option value=\"$month\">$month</option>";
}
}
?>
</select>
<input type='submit' name='submit' value='изменить'>
</form>
вывести в нужном месте print <<<HERE при условии if ($myrow['login'] == $login)
<?php if ($myrow['login'] == $login) {
print <<<HERE
$myrow[b_day] $myrow[b_month] $myrow[b_year]
<select name="b_month">
$aMonths = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12');
$dbmonth = $myrow['b_month'];
foreach ($aMonths as $month)
{
if($month == $dbmonth) {
echo "<option value=\"$month\" SELECTED>$month</option>";
} else
{
echo "<option value=\"$month\">$month</option>";
}
}
</select>
HERE;
}
?>
на строку $dbmonth = $myrow['b_month'] дает ошибку: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
По- разному пробовал экранировать, но верного результата пока нет.
Спустя 16 минут, 2 секунды (22.01.2011 - 18:52) Renden написал(а):
franko
Насколько я понял, тебе надо тоже самое что требовалось мне пару дней назад, мне предложили решение:
Мне оно подошло, измени только параметры под те, которые тебе нужны.
Насколько я понял, тебе надо тоже самое что требовалось мне пару дней назад, мне предложили решение:
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>';
Мне оно подошло, измени только параметры под те, которые тебе нужны.
Спустя 3 минуты, 5 секунд (22.01.2011 - 18:55) maurise написал(а):
Как комментарий к совету: Делай без конструкции <<<HERE
Просто создай текстовую переменную, запихни в неё то, надо вывести и выводи, когда нужно.
Просто создай текстовую переменную, запихни в неё то, надо вывести и выводи, когда нужно.
Спустя 4 часа, 57 минут (22.01.2011 - 23:52) inpost написал(а):
franko
Ко мне в подпись последнюю и лечись от всяких там print <<< HERE. Используй через echo, или закрывай PHP код и выводи просто текст.
Ко мне в подпись последнюю и лечись от всяких там print <<< HERE. Используй через echo, или закрывай PHP код и выводи просто текст.
Спустя 4 минуты, 13 секунд (22.01.2011 - 23:56) inpost написал(а):
Renden
$selected = (int) $_POST['month']==$k?' selected':'';Эту конструкцию можно вообще объеденить:
echo '<option value="'.$k.'"'.$selected.' >'.$v.'</option>';
echo '<option value="'.$k.'"'.(int)$_POST['month']==$k?' selected':''.' >'.$v.'</option>';
Спустя 11 часов, 30 минут, 27 секунд (23.01.2011 - 11:27) franko написал(а):
Цитата |
Ко мне в подпись последнюю и лечись от всяких там print <<< HERE. Используй через echo, или закрывай PHP код и выводи просто текст. |
Спасибо! Отличная статья
Спустя 12 часов, 43 минуты, 54 секунды (24.01.2011 - 00:10) franko написал(а):
echo "<select name='b_month'>";
$aMonths = array(1=>'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
foreach ($aMonths as $num => $month){
$selected = "";
if($month == $myrow['b_month']) {
$selected = " SELECTED";
echo "$num";
}
echo "<option value='$num'$selected>$month</option>";
}
echo "</select>";
выводит январь, кто-нибудь видит ошибку?
Спустя 11 минут, 45 секунд (24.01.2011 - 00:22) inpost написал(а):
Спустя 11 минут, 50 секунд (24.01.2011 - 00:34) franko написал(а):
Цитата |
$aMonths = array(1=>'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'); |
можно и в этот array занести вместо 1 - Январь, 2 - Февраль?
Спустя 23 минуты, 23 секунды (24.01.2011 - 00:57) inpost написал(а):
franko
Посмотри, как записываются массивы.
Посмотри, как записываются массивы.
Спустя 8 часов, 25 минут, 2 секунды (24.01.2011 - 09:22) linker написал(а):
Нету там ошибок в массиве, человек правильно написал
$aMonths = array(1=>'Январь', 'Февраль', ..., кто не понял почему, открываем учебник по PHP на главе "Массивы" и читаем.
Спустя 1 день, 8 часов, 33 минуты, 39 секунд (25.01.2011 - 17:56) franko написал(а):
echo "<select name='b_month'>";
$aMonths = array(1 => 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
foreach ($aMonths as $num => $month){
$selected = "";
echo $myrow['b_month'];
if($month == $myrow['b_month'])
{
$selected = " SELECTED";
}
echo "<option value='$num'$selected>$month</option>";
}
echo "</select>";
$myrow['b_month'] = 3, echo $month = Декабрь, echo $num = 12.
Идет сравнение if($month == $myrow['b_month'])
Вопрос: Ошибка в этой строке foreach ($aMonths as $num => $month) ?
Спустя 3 минуты, 43 секунды (25.01.2011 - 18:00) linker написал(а):
Что есть $myrow['b_month'] и откуда берется?
Спустя 12 минут, 44 секунды (25.01.2011 - 18:13) inpost написал(а):
Внутри foreach выведи и посмотри, с чем именно тебе надо сравнивать:
echo 'КЛЮЧ: '.$num.' - ЗНАЧЕНИЕ: '.$month.'<br />';
Спустя 5 минут, 26 секунд (25.01.2011 - 18:18) franko написал(а):
Цитата (linker @ 25.01.2011 - 15:00) |
Что есть $myrow['b_month'] и откуда берется? |
При регистрации пользователь выбрал месяц
<SELECT name="b_month"><OPTION value=1 selected>Январь</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>
Спустя 4 минуты, 32 секунды (25.01.2011 - 18:23) inpost написал(а):
$имя_массива[ключ] = значение;
Спустя 2 минуты, 13 секунд (25.01.2011 - 18:25) franko написал(а):
Цитата (inpost @ 25.01.2011 - 15:13) |
Внутри foreach выведи и посмотри, с чем именно тебе надо сравнивать:echo 'КЛЮЧ: '.$num.' - ЗНАЧЕНИЕ: '.$month.'<br />'; |
КЛЮЧ: 12 - ЗНАЧЕНИЕ: Декабрь
Кстати, если ставить echo 'КЛЮЧ: '.$num.' - ЗНАЧЕНИЕ: '.$month.'<br />'; внутри foreach то ничего не выводится.
Вывод поставил после echo "</select>";
Спустя 7 минут, 19 секунд (25.01.2011 - 18:32) inpost написал(а):
покажи
Спустя 8 минут, 38 секунд (25.01.2011 - 18:41) franko написал(а):
Что показать?
Спустя 7 часов, 37 минут, 29 секунд (26.01.2011 - 02:18) inpost написал(а):
franko
Фото голых тёток. А что ещё? Мы на форуме программистов, тут обсуждают все коды скриптов =)
Фото голых тёток. А что ещё? Мы на форуме программистов, тут обсуждают все коды скриптов =)