Форма (эйдос, "морфэ") - специфический
принцип вещи, её сущность, цель и
движущая сила, актуализирующая первоматерию
как простую возможность бытия...
Русская народная поговорка
На прошлом уроке мы научились передавать данные в 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 это записывается следующим образом:
В скрипт передается переменная variants с одним из значений
(1, 2 или etc) в зависимости от выбора пользователя. Если value
не указаны, передается текст между тегами <option>.
<Input Type="CheckBox">
В случае установки флажка в обработчик передается переменная с
именем, соответствующим имени самого checkbox, со значением On.
Если checkbox пуст, то в скрипте эта перенная вообще не будет определена.
<Input type="Radio">
Самый распространенный способ использования этого элемента - выбор
только одного из альтернативных вариантов. Для него соответствует
следующий HTML код:
В скрипт передастся переменная 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.