На прошлом уроке мы научились передавать данные в php скрипт, что является удивительным явлением с точки зрения программирования: ввод данных происходит с помощью одного языка, обработка и вывод - посредством другого. Существует два самых распространенных метода передачи данных из формы в скрипт: GET и POST. Не вдаваясь в технические подробности, скажу лишь, что пользователь может различить их только по виду адресной строки. Например, если URL выглядит http://www.server.ru/registration.php?name=Vasia&surname=Pupkin, то мы можем сказать, что в данной форме использован метод GET. Этот метод предполагает присоединение к URL имён и значения форм. Причем делается это по следующей схеме:
http://какой-либо_URL/страниц....ение...
Метод POST, в отличие от GET, незаметен для пользователя и ничего не прибавляет к URL. На данный момент нам этих знаний вполне достаточно.
Перейдем теперь непосредственно к самим формам и рассмотрим различные способы ввода данных в скрипт.
<Input type="TEXT"> <TextArea>
Два схожих элемента формы, предназначенные для ввода текста. В скрипт значения передаются следующим образом: значение атрибута 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-элементы формы со второй страницы. Кроме того, этот элемент используется при использовании одного и того же скрипта несколькими формами, что обеспечивает распознавание формы, из которой были переданы данные. Например, формы оценки статей на сайте.
<Input type="SUBMIT"> <Input type="Image" src="адрес">
Оба элемента выполняют одинаковую функцию - подачу запроса на обработку формы. Без одного из этих элементов функциональная форма просто не может существовать. Если с Submit, я думаю, все понятно, то Image имеет одну особенность: этот элемент может передавать скрипту два значения - координаты X и Y пикселя изображения, на который был совершен клик.
До следующего урока я рекомендую попрактиковаться в использовании всех элементов и выводом значений форм функцией ECHO. Кстати, для вывода всех значений форм вместе можно использовать предопределенные переменные $HTTP_GET_VARS или $HTTP_POST_VARS для соответствующих методов передачи данных. О предопределенных переменных мы поговорим попозже, а пока лишь скажу, что это зарезервированные переменные, которые сами берут значения из окружения сервера. Вышеуказанные переменные лучше выводить функцией PRINT_R, а не ECHO. Это должно выглядеть так:
<? print_r ($HTTP_POST_VARS); ?>
А в следующем уроке мы рассмотрим такой тип данных, как массив, а также познакомимся с управляющими конструкциями PHP.