[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: (PHP)условие if и print
franko
Необходимо форму, которая выводит заранее выбранный месяц
<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 код и выводи просто текст.

Спустя 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 написал(а):
http://inpost.dp.ua/lessons/lessons.php?id=1

+ ошибка тут: 1=>'Январь'

Спустя 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
Фото голых тёток. А что ещё? Мы на форуме программистов, тут обсуждают все коды скриптов =)
Быстрый ответ:

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