Уроки PHP для начинающих


Суммирование чисел

В двух предыдущих статьях я начал выкладывать свою коллекцию скриптов (см. Часы на странице сайта и Меняем фон в зависимости от времени суток). И сейчас разберём ещё один скрипт.

Суммирование чисел

На индексной странице добавляем заголовок "Суммирование чисел" и делаем из него ссылку на файл именем, например, sum.php. Создаём этот файл.

Запускаем Денвер, открываем индексную страницу в браузере и проверяем, как работает новая ссылка на новую страницу, которая, естественно, пуста.

Открываем sum.php в своём редакторе.

По идее, код этой страницы сейчас только базовый HTML:

<html>
<head>
<title> Суммирование чисел </title>
</head>
<body>

</body>
</html>

Чтобы иметь возможность числа суммировать, нужна форма с полями, в которые эти числа будут вписываться, и кнопка, которой будет запускаться скрипт-сумматор. Поэтому сперва создаём форму. Дописыааем следующее:

<html>
<head>
<title> Суммирование чисел </title>
</head>

<body>

<form method="post"> <!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<!-- для перехода на главную делаем ссылку-->
<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Сохраните изменения, обновите страницу в браузере. На странице должна появиться форма из двух текстовых полей и кнопки "Сложить".

Но, как нам давным-давно известно, никакая кнопка сама по себе ничего не "сложит", нужен скрипт-обработчик формы. Создадим его. Добавляем следующий фрагмент (сначала просто напишем этот код, а потом я поэтапно объясню, что и для чего в нём):

..........
<body>

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2'])): //если в массиве POST существуют обе переменных v1 и v2, то показываем рузультат сложения.
?>

<?php
$v1 = $_POST['v1']; //помещаем оба значения массива в переменные
$v2 = $_POST['v2'];
$result = $v1 + $v2; //переменные суммируем
?>

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>

<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

<?php
else: // иначе (если в массиве POST нет никаких переменных) выводится форма, которая ниже
?>

<form method="post"> <!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
endif;
?>

<p align="center"><a href="index.html">На главную</a></p>
</body>
</html>

Теперь по-порядку.

При открытии страницы мы должны видеть форму, а при обработке формы нужно видеть результат, поэтому нужны два режима отображения странички. То есть, если нужно ввести данные, то на странице должна быть показана форма; а если нужно показать уже результат, то и выводится только результат без формы. Для этого и вводим проверку:

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2'])): //если в массиве POST существуют обе переменных v1 и v2, то показываем рузультат сложения.
?>

Массив POST - это глобальный массив, который образуется из данных в полях формы. Если эти данные есть (поля формы заполнены), то они помещаются в простые переменные и суммируются:

<?php
$v1 = $_POST['v1']; //помещаем оба значения массива в переменные
$v2 = $_POST['v2'];
$result = $v1 + $v2; //переменные суммируем
?>

После чего на страницу выводится сумма чисел, введённых в форму. И ссылка для возвращения на страницу с формой - просто для удобства:

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>
<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

Иначе, то есть, если в полях формы нет значений, просто выводится сама форма и после неё скрипт проверки формы останавливается:

...
<?php
else: // иначе (если в массиве POST нет никаких переменных) выводится форма, которая ниже
?>
<form method="post"> <!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
endif;
?>
...

Таким образм весь код этого файла выглядит так:

<html>
<head>
<title> Суммирование чисел </title>
</head>
<body>

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2'])): //если в массиве POST существуют обе переменных v1 и v2, то показываем рузультат сложения.
?>

<?php
$v1 = $_POST['v1']; //помещаем оба значения массива в переменные
$v2 = $_POST['v2'];
$result = $v1 + $v2; //переменные суммируем
?>

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>

<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

<?php
else: // иначе (если в массиве POST нет никаких переменных) выводится форма, которая ниже
?>

<form method="post"><!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
endif;
?>

<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Обращаю ваше внимание на нескольких моментах.

Первое. Промежутки между фрагментами кода я сделал только для лучшего их восприятия, на самом деле они там не нужны.

Второе. Возможно, вы и сами обратили внимание, что после операторов if и else я поставил двоеточия, чего раньше не делал. Это более грамотная запись, когда PHP чередуется с HTML. То же самое можно было бы записать так:

<html>
<head>
<title> Суммирование чисел </title>
</head>
<body>

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2']))
{
?>

<?php
$v1 = $_POST['v1'];
$v2 = $_POST['v2'];
$result = $v1 + $v2;
?>

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>

<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

<?php
}
else
{
?>

<form method="post">
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
}
end;
?>

<p align="center"><a href="index.html">На главную</a></p>
</body>
</html>

P. S. Если Вы хотите научиться создавать PHP-сайты профессионально и сэкономить на освоении программирования несколько лет, то Вам сюда.

Успехов.

Автор: Андрей Чернобай

P. S. Подпишитесь на безплатную рассылку Вокруг Сайта и получайте на свой электронный адрес новые уроки по созданию сайта.

Оставьте свой отзыв о статье:



Введите цифровой код с картинки*:

Новое на сайте

Другие статьи...

Видеокурсы

Рассылки

"Вокруг Сайта"
подпишитесь и получайте на свой e-mail уроки, книги, статьи, скрипты, а также подарки и скидки на товары, продаваемые с сайта

SmartResponder.ru
Ваше имя: *
Ваш e-mail: *

"PHP-песочница"
- PHP для начинающих: уроки с подробным анализом скриптов, необходимых для вашего сайта:

PHP-песочница
Подписаться письмом

Разделы Сайта