Уроки PHP.
Урок 2. Формы всего сущего.
Форма (эйдос, "морфэ") - специфический принцип вещи, её
сущность, цель и движущая сила, актуализирующая первоматерию как простую
возможность бытия... Русская народная поговорка
На прошлом уроке мы научились передавать данные в php скрипт, что является
удивительным явлением с точки зрения программирования: ввод данных происходит с
помощью одного языка, обработка и вывод - посредством другого.
Существует два самых распространенных метода передачи данных из формы в
скрипт: GET и POST. Не вдаваясь в технические подробности, скажу лишь, что
пользователь может различить их только по виду адресной строки. Например, если
URL выглядит
http://www.server.ru/registration.php?name=Vasia&surname=Pupkin, то
мы можем сказать, что в данной форме использован метод GET. Этот метод
предполагает присоединение к URL имён и значения форм. Причем делается это по
следующей
схеме: http://какой-либо_URL/страница.php?имя_переменной=её_значение&имя=значение... Метод
POST, в отличие от GET, незаметен для пользователя и ничего не прибавляет к URL.
На данный момент нам этих знаний вполне достаточно.
Перейдем теперь непосредственно к самим формам и рассмотрим различные способы
ввода данных в скрипт.
Два
схожих элемента формы, предназначенные для ввода текста. В скрипт значения
передаются следующим образом: значение атрибута name становится именем
переменной, а введенные в элемент данные - её значением этой переменной.
<SELECT>
В HTML это записывается
следующим образом:
<form ...><select name="variants"> <option
value="1">Вариант1</option> <option value="2">Вариант
2</option> <option value="etc">и
т.д.</option> </select></form>
| В скрипт передается переменная
variants с одним из значений (1, 2 или etc) в зависимости от выбора
пользователя. Если value не указаны, передается текст между тегами
<option>.
<Input Type="CheckBox">
В случае установки флажка в обработчик передается переменная с именем,
соответствующим имени самого checkbox, со значением On. Если checkbox пуст, то в
скрипте эта перенная вообще не будет определена.
<Input type="Radio">
Самый распространенный способ
использования этого элемента - выбор только одного из альтернативных вариантов.
Для него соответствует следующий HTML код:
<form ...> <Input type="radio" name="var" value="1">Вариант
1 <Input type="radio" name="var" value="variant_2">Вариант
2 </form> |
В скрипт передастся переменная var со значением либо
1, либо variant_2.
<Input type="HIDDEN">
Невидимый элемент формы, но тем не менее несущий значение в скрипт. В
php-программировании его часто используют для передачи данных через несколько
страниц. Для этого на каждой странице необходимо расположить php-скрипт,
считывающий значение элемента Hidden с предыдущей страницы и присваивающий это
значение элементу Hidden текущей страницы. Типичный пример - двухстраничные
формы, где все данные формы с первой страницы заносятся в Hidden-элементы формы
со второй страницы. Кроме того, этот элемент используется при использовании
одного и того же скрипта несколькими формами, что обеспечивает распознавание
формы, из которой были переданы данные. Например, формы оценки статей на
сайте.
Оба элемента выполняют одинаковую функцию - подачу запроса на обработку
формы. Без одного из этих элементов функциональная форма просто не может
существовать. Если с Submit, я думаю, все понятно, то Image имеет одну
особенность: этот элемент может передавать скрипту два значения - координаты X и
Y пикселя изображения, на который был совершен клик.
До следующего урока я рекомендую попрактиковаться в использовании всех
элементов и выводом значений форм функцией ECHO. Кстати, для вывода всех
значений форм вместе можно использовать предопределенные переменные
$HTTP_GET_VARS или $HTTP_POST_VARS для соответствующих методов
передачи данных. О предопределенных переменных мы поговорим попозже, а пока лишь
скажу, что это зарезервированные переменные, которые сами берут значения из
окружения сервера. Вышеуказанные переменные лучше выводить функцией PRINT_R,
а не ECHO. Это должно выглядеть так:
<? print_r ($HTTP_POST_VARS); ?>
|
А в следующем уроке мы рассмотрим такой тип данных, как массив, а также
познакомимся с управляющими конструкциями PHP.
|