[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна помощь в изучении
rez1st
<?
$val++;
$val1++;
echo
"<form>
<input type = 'hidden'
name = 'val'
value = '
$val'
>
<input type = 'text'
name = 'val1'
value = '
$val1'
>
<input type = 'submit' value='make'>
</form>"
;
echo "<br>val = $val<br>val1 = $val1";
?>


Простейший код, после Сабмита по идее должно прибавляться по единичке, но у меня постоянно показывает единицу, не подскажите в чем проблема?



Спустя 5 минут, 8 секунд (5.05.2011 - 14:02) Игорь_Vasinsky написал(а):
Цитата
после Сабмита по идее должно прибавляться по единичке


не чего не должно dry.gif ты что, где то переменные хранишь, чтоб к ним прибавлять?


Спустя 2 минуты, 26 секунд (5.05.2011 - 14:04) Happy! написал(а):
После нажатия на кнопку страница обновляется и переменные переходят методом get, чтобы после обновления страницы получить их надо использовать $_GET['val'];

Спустя 53 секунды (5.05.2011 - 14:05) linker написал(а):
register_globals = off
Используем общечеловеческие $_GET, $_POST.

Спустя 9 минут, 49 секунд (5.05.2011 - 14:15) Игорь_Vasinsky написал(а):
ну ка так попробуй:

<?
#Сразу учимся писать красиво
#Проверим - была ли нажата sumbit

if(isset($_POST['make']))
{
#Не по мешало бы почитать про тернарный оператор
$val = empty($_POST['val']) ? 0 : $_POST['val'];
$val1 = empty($_POST['val1']) ? 0 : $_POST['val1'];
}

$val++;
$val1++;
echo "<form>"
. "<input type = hidden' name = 'val' value = '".$val."' />"
. "<input type = 'text' name = 'val1' value = '".$val1."' />"
. "<input type = 'submit' value='make'>"
. "</form>";

echo "<br>val = ".$val
. "<br>val1 = ".$val1;
?>


смысл в том, что переменные храняться в суперглобалном массиве POST
и в value инпутов подставляются от туда же ;)


Спустя 1 минута, 53 секунды (5.05.2011 - 14:17) Игорь_Vasinsky написал(а):
работает? а то не проверял biggrin.gif

если чё не понятно - давай разбирать вместе dry.gif

Спустя 51 минута, 23 секунды (5.05.2011 - 15:08) rez1st написал(а):
Вай, у меня в учебничке вообще все по другому, и супер глобал массив я еще ни разу не юзал)))
например вопросы:
isset - это типа проверка? было ли передано в этот глоб массив пост, значение мейк(проверка совершения действия)?

вот энто

$val = empty($_POST['val']) ? 0 : $_POST['val'];

этот кусок не пойму.

и еще вопрос, зачем в эчо ты переменные выносишь "за" оператор, если он внутри отлично пашет?

Я совсем беггинер) не судите строго.

Спустя 5 минут, 18 секунд (5.05.2011 - 15:13) rez1st написал(а):
эм... в общем я почему и спросил в учебнике Энди Харрис 2005 гв

этот кусок так и написан. правда метод гет по умолчанию я поставил там было
<form method="post">



А Ваш код к сожалению не помог Игорь_Vasinsky

Спустя 2 часа, 6 минут, 35 секунд (5.05.2011 - 17:20) walerus написал(а):

<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<
title>Плюс</title>
</
head>
<
body>

<?php

if (isset($_REQUEST['val']) && trim($_REQUEST['val']) != '')
{
$val = trim($_REQUEST['val']);
$val++;
}
else
$val = 1;

if (isset($_REQUEST['val1']) && trim($_REQUEST['val1']) != '')
{
$val1 = trim($_REQUEST['val1']);
$val1++;
}
else
$val1 = 1;
?>

<form method="POST" action="">
<
input type="hidden" name="val" value="<?php echo $val; ?>" size="20">
<
input type="text" name="val1" value="<?php echo $val1; ?>" size="20">
<
input type="submit" value="Отправить" name="B1">
</
form>
<?php
echo "<br>val = $val<br>val1 = $val1";

?>
</body>
</
html>


Спустя 1 час, 24 минуты, 17 секунд (5.05.2011 - 18:44) rez1st написал(а):
Вай, спс, я поставлю плюс как только 10 постов наберу)

Спустя 9 минут, 44 секунды (5.05.2011 - 18:54) DedMorozzz написал(а):
Какая популярная аватарка...

Спустя 4 минуты, 19 секунд (5.05.2011 - 18:58) inpost написал(а):
DedMorozzz
Я только что тоже об этом подумал smile.gif Может её удалить из БД?! smile.gif

Спустя 2 минуты, 34 секунды (5.05.2011 - 19:01) Zerstoren написал(а):
$val = empty($_POST['val']) ? 0 : $_POST['val'];

это сокращенный вариант условий которые содержат только два варианта ответов.

если по русски

$val = empty($_POST['val']) ? если она пуста, то вернет ноль : иначе вернет массив val из $_POST;

К сокращенным записям так-же относятся if, elseif, else, while, for, foreach, switch
вроде все перечислил

т.е. вызывается так

if(isset($got) ): // Указываем двоеточие а не скобку фигурную

// Some code


endif;


Аналогично проделывается с выше приведенными операторами.
Весьма удобно когда мы выделяем в условие здоровый кусок кода или уже в коде куча скобок.


Но будь внимателен, если на сервере отрублен параметр shor tag *вроде так обзывается*

То весь сайт ляжет с синтаксической ошибкой.
Ровно так же как и запись <? вместо <?php

Спустя 12 часов, 56 минут, 12 секунд (6.05.2011 - 07:57) rez1st написал(а):
О, Zerstoren респект, спасибо большое за объяснение, теперь блок выбора станет проще в понимании.

Спустя 38 минут, 30 секунд (6.05.2011 - 08:35) rez1st написал(а):
В итоге вышло
<?php
if (isset($_REQUEST['val']))
{
$val = $_REQUEST['val'];
$val++;
}
else
$val = 1;
//end if
if (isset($_REQUEST['val1']))
{
$val1 = $_REQUEST['val1'];
$val1++;
}
else
$val1 = 1;
//end if
echo "<form method='POST' action=''>
<input type='hidden'
name='val'
value='
$val'>
<input type='text'
name='val1'
value='
$val1'
size='20'>
<input type='submit'
value='send'>
</form>"
;
echo "<br>val = $val<br>val1 = $val1";
?>


спасибо тем кто помог. разобраться с этим мне над было для того, что у меня в учебнике в дз нужно сделать код угадай число, тепло\холодно, а для этого там рекомендовано использовать скрытые поля для хранения переменной между запусками прогр(а я сделал иначе).

Огромное спасибо за помощь,

небольшой вопросик, про $_REQUEST и $_POST - я так понял что в этих массивах можно хранить любые данные и возвращать, и всеж стоит вопрос, как хранить в скрытых полях))) ибо я так понял поставленную задачу я не выполнил))l1";
[/php]?>


_____________
Если только захотеть...
Быстрый ответ:

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