Формы
Не раз нам доводилось видеть Web-страницы, на которых нам предлагалось шести некоторые данные в поля ввода. В HTML существует механизм получения данных от пользователя. Естественно, эти данные необходимо еще обработать, но этим занимаются специализированные программы. Рассмотрим механизм их взаимодействия с Web-страницами.
Итак, пользователь загрузил себе Web-страницу, на которой располагаются органы управления для ввода информации. Все они объединены в общую совокупность, называемую формой. Каждая форма обладает кнопкой, по нажатию на которую введенные пользователем данные передаются обрабатывающей программе, Эта программа размещается на Web-сервере, который и обслуживает данную страницу. Подобные программы могут создаваться при помощи самых различных технологий программирования. Объединяет их лишь единый порядок получения данных от Web-страницы. Данные передаются при помощи шлюзового интерфейса CGI (Common Gateway nterface). Поэтому обрабатывающие программы часто называют CGI-приложениями или CGI-скриптами.
Итак, приложение получает данные и обрабатывает их. Затем оно может либо послать некое электронное письмо, либо произвести некоторую операцию в базе данных, или передать пользователю новую Web-страницу, возможные действия ограничиваются лишь свойствами технологии и фантазией программиста. При помощи подобных программ действуют всевозможные системы регистрации, обратной связи, гостевые книга, форумы, чаты. С их помощью создаются и более разветвленные и сложные системы, например, online-магазины.
Идя того чтобы создавать подобные приложения все-таки необходимо уметь программировать и знать соответствующие правила создания CGI-приложений. До, тех пор, пока мы этого не умеем, нам остается пользоваться опять-таки общедоступными CGI-скриптами. Но если мы и получим эти приложения, то форму для ввода данных пользователем необходимо все равно делать самостоятельно. В данном разделе мы научимся это делать.
Форма ограничивается тегами <form> и </form>. Между этими тегами располагаются теги, создающие органы ввода информации и теги создания обычного содержимого Web-страницы, т. е. сами органы ввода могут раз щаться в таблице, которая в свою очередь полностью размещается в фор Тег <form> не создает какой-либо отображаемой структуры. Он, скорее предназначен для внутренней группировки объектов.
Тег <form>, естественно, обладает целым рядом параметров, которые задают свойства создаваемой формы. Рассмотрим эти параметры.
- Параметр action является обязательным. Значением его является URL указывающий на расположение того CGI-приложения, которое и будет обрабатывать данные, введенные пользователем при помощи опции управления данной формы.
- Параметр method предназначен для указания способа, которым данные будут передаваться обрабатывающему приложению. В качестве значения параметра используется одно из двух предустановленных ключевых слов: get или post. Сейчас нам нет нужды узнавать, какие механизмы реализуются при помощи того или иного метода. Так или иначе, в сопроводительной документации CGI-приложения указывается, какой метод передачи данных следует использовать. По умолчанию используется значок get.
- Параметр enctype используется для указания типа передаваемых да ных из формы. Обычно нет нужды его использовать, так как значение application/x-www-form-urlencoded, используемое по умолчанию идеально подходит для подавляющего большинства CGI-приложений.
- Параметр accept-charset используется в тех случаях, когда пользователь передает из формы приложению не только информацию, но и файлы. В этом случае мы можем явно указать кодировки передаваемых фа лов. В качестве значения данного параметра используется текстов строка, в которой записывается одно или несколько названий кодировки. В том случае, если применяется несколько кодировок, их наименование разделяются пробелами идя запятыми. По умолчанию используется значение unknown, которое указывает серверу, что тот должен сам разобраться с используемыми кодировками
- Параметр accept задает типы передаваемых файлов. Обычно не используется, так как сервер вполне в состояний сам адекватно распознать тип принимаемого файла.
- Параметр name позволяет задавать уникальное имя формы. Естественно на одной Web-странице может находиться несколько форм. В этом случае значения параметров name у них не должны совпадать.
Тег <form> с его закрывающим близнецом </form>, по сути, создают контейнер для размещения органов ввода информации. Большая часть эт органов ввода реализуется при помощи тега <input>. Продемонстрируем эт на небольшом примере (рис. 1.32).
Листинг 1.33
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
>
<
html
>
<
head
>
<
title
>
Формы
<
/
title
>
<
/
head
>
<
body
>
<
form
action
=
"http://www.iaysite.com/cgi-bin/test.exe"
method
=
"post"
>
<
p
>
Поле для ввода строки текста
<
input
type
=
"text"
>
<
/
p
>
<
input
type
=
"submit"
value
=
"Отправить"
>
<
/
form
>
<
/
body
>
<
/
html
>