Упражнение 5-4. Работа с «флажком».
1. В форму HTML-документа f3.htmlперед кнопкой добавить «флажок», позволяющий указать вид выводимого результата вычислений: вывести выражение полностью (например, 3+7=11) или показать только полученный результат.
<FORM method="post" action="f4_p.php">
а: <INPUT type="text" name="a" size="3">
+ <INPUT type="radio" name="d" value="plus">
или * <INPUT type="radio" name="d" value="umnozh">
b: <INPUT type="text" name="b" size="3">
<P> <INPUT type="checkbox" name="f">
<P> <INPUT type="submit" value="Вычислить">
</FORM>
2. Сохраните файл под именем f4.htmlи проверьте его работоспособность.
3. Создать php-файл f4_p.php, обрабатывающий данные из формы:
<?
if ($_POST["d"]=="plus") {
$c=$_POST["a"]+$_POST["b"];
if ($_POST["f"].checked==checked) {
echo ($_POST['a']."+".$_POST['b']."=".$c);
} else { echo ("Результат = ".$c); }
} else {
$c=$_POST["a"]*$_POST["b"];
if (isset($_POST["f"])) {
echo ("Результат = ".$c);
} else {
echo ($_POST['a']."*".$_POST['b']." = ".$c); }
echo ("<BR> <A href='f4.html'> Вернуться назад </A>");
?>
4. Проверить работоспособность формы.
Пояснения:
Если переключатели неактивны, то параметры вообще не будут переданы на сервер, как будто бы вообще их не было. Следовательно, не будет создана глобальная переменная и при попытке обращения к такой переменной, мы получим сообщение о том, что переменная не существует. Поэтому нужно предварительно проверить существует ли переменная с помощью функции isset ().
Упражнение 5-5. Работа с выпадающим списком.
1. Создать новый HTML-документ, содержащий форму с двумя текстовыми полями для ввода фамилии и имени, список для выбора формы обращения («господин», «госпожа», «товарищ»), а также кнопку отправки данных обработчику.
<FORM method="post" action="f5_p.php">
<P> Фамилия: <INPUT type="text" name="f" size="15">
<P> Имя: <INPUT type="text" name="n" size="15">
<P> Форма обращения: <BR>
<SELECT NAME="z" SIZE="1">
<OPTION VALUE="1" SELECTED> господин
<OPTION VALUE="2"> госпожа
<OPTION VALUE="3"> товарищ
</SELECT>
<P> <INPUT type="submit" value="Отправить">
</FORM>
2. Сохраните файл под именем f5.htmlи проверьте его работоспособность.
3. Создать php-файл f5_p.phpпо обработке данной страницы:
<?
$s3=($_POST["f"]." ".$_POST["n"]);
$s4=". Мы рады приветствовать вас на нашем сайте.";
switch ($_POST["z"]) {
// смотрим, чему равна переменная $z
case 1:
// 1 — это обращение «господин»…
$s1="Уважаемый ";
$s2="господин ";
break;
case 2:
// 2 — это обращение «госпожа»…
$s1="Уважаемая ";
$s2="госпожа ";
break;
case 3:
// 3 — это обращение «товарищ»…
$s1="Уважаемый ";
$s2="товарищ ";
break;
}
echo ($s1 . $s2 . $s3 . $s4);
?>
Упражнение 5-6.
1. Добавить в HTML-документ f5.htmlмногострочную область для ввода дополнительной информации о пользователе:
2. Сохранить документ под именем f6.htmlи проверить его работоспособность.
3. В php-файл f5_p.phpдобавить код для вывода содержимого текстовой области. Сохранить результат под именемf6_p.phpи проверить работу обработчика.
Форму и PHP-скрипт можно располагать в одном документе. Для этого для параметраactionв тегеFORMнадо указать:action="<?php print $PHP_SELF ?>"
Однако если просто прописать то, что показано выше, при первом вызове документ будет выдавать ошибку. Чтобы этого не было, надо проверить, определена ли переменная, связанная с вызовом обработчика, используя функцию isset ($имя_переменной).
Пример:
<?php
if (isset($im)) { print $hello; }
?>
. . .
<form action="<?php print $PHP_SELF ?>" method="POST">
<input type="text" name="hello">
<input type="submit" name="im" value="Готово">
</form>
УПРАЖНЕНИЕ 5-7.«Угадай-ка» - скрипт и форма в одном документе
1. В папке WWWсоздайте новый текстовый файл со следующим кодом:
<HTML>
<HEAD> <TITLE> Угадай число </TITLE> </HEAD>
<BODY>
<FORM method="post" action="<?php print $PHP_SELF ?>">
Введите число от 1 до 10:
<INPUT type="text" name="a" size="3">
<INPUT type="hidden" name="h" value="5"> // угадываемое число
<P> <INPUT type="submit" name="obr" value="Проверить">
</FORM>
<?
if (isset($_POST["obr"])) {
if ($_POST["a"]==$_POST["h"]) { echo($_POST["a"]." - УГАДАЛИ!");
} else {
if ($_POST["a"]>$_POST["h"]) {
echo($_POST["a"]." - МНОГО...");
} else { echo($_POST["a"]." - МАЛО..."); }
} }
?>
</BODY> </HTML>
2. Сохранить документ под именем f7.phpи проверить его работоспособность.