HTML формы. HTML-формы

В одной из предыдущих заметок, я рассказывал об универсальном теге input, с помощью которого можно создать большинство элементов веб-форм. Но, используя лишь эти элементы (текстовое поле, кнопка и.т.д.) создать полноценную форму не получиться.

Предположим, у нас есть простая форма, которая состоит из двух текстовых полей, в которые пользователь должен ввести свое имя и фамилию.

Имя

Фамилия

куда конкретно и каким образом

и закрывающим

Имя

Фамилия

Теперь понятно, что эта часть кода является формой.

Если вы просмотрите страницу с этим кодом в браузере, то увидите, что особых изменений на ней не произошло. Сам по себе этот тег никаких визуальных изменений в структуру страницы не вносит.

Но эта форма до сих пор не является рабочей. Хотя два текстовых поля теперь у нас воспринимаются браузером как часть одной формы, но совсем не понятно, куда же все-таки отсылать данные, которые введет в эту форму пользователь. У этой формы отсутствует очень важный, обязательный атрибут.

Смысл использования тега form в специальных атрибутах, которые можно к нему применять.

Давайте посмотрим, что это за атрибуты. В первую очередь, это два самых важных атрибута для веб-форм.

1) a ction – этот атрибут является обязательным. Т.е. создавать форму без его использования особого смысла не имеет. С его помощью указывается путь к программе (скрипту), которая будет обрабатывать данные введенные в форме.

2) method – этим атрибутом мы указываем метод, с помощью которого данные будут переданы к программе обработчику.

Здесь возможны два варианта GET и POST . Я не буду в этой заметке описывать, чем отличаются эти два метода. Это тема уже другой статьи.

Если не указывать этот атрибут, то по умолчанию будет использован метод GET .

Давайте добавим эти два атрибута к нашей форме:

Имя

Фамилия

Вот теперь наша форма уже практически рабочая. Мы указали, куда должны отправляться данные, которые введет пользователь с помощью атрибута action , и указали, каким образом эти данные должны отправляться.

Следующие атрибуты встречаются намного реже, для решения специфичных задач, но я все равно немного расскажу о них.

3) enctype – с помощью этого атрибута можно указать тип содержимого/content type, которое будет отправлено на сервер.

4) accept — задает список разделённых запятыми типов содержимого / content type list , которые будут отправлены на сервер.

4) accept —charset – задает список кодировок текста, которые будут сообщаться программе (скрипту).

С первым действием все, переходим ко второму.

2 действие. Создать элемент управления – кнопку, при нажатии на которую данные бы отправились в программу обработчик.

Хорошо, мы с вами создали веб-форму, но ведь пользователю нужно совершить какое-то действие, чтобы данные, которые он ввел, были отправлены в программу обработчик. Обычно это делается созданием кнопки с атрибутом type=»submit» .

Все браузеры уже настроены таким образом, что когда пользователь кликает по кнопке с атрибутам type =»submit «. То автоматически данные, которые введены в форме, будут отправлены по адресу, который задан в атрибуте action , формы.

Давайте прямо сейчас добавим эту кнопку к нашей веб-форме. О том, как создаются кнопки, я рассказывал в предыдущем уроке .

Имя
-
Фамилия

Теперь, когда пользователь нажмет на кнопку «Отправить», данные, которые он ввел в текстовые поля, будут отправлены программе-обработчику, которая находится, например, по адресу «http ://dimachen .info /papka /script .php ».

На сегодня все. До встречи!

Пользователь может заполнить эти поля, но никаких изменений от этого не произойдет. Для того, чтобы браузер начал воспринимать эту форму как единую структуру, нужно произвести два действия:

1 действие. Сообщить браузеру, что эти текстовые поля являются единым целым, одной формой.

Специальный тег, который позволяет это сделать — это тег form . form – это специальный элемент, который позволяет объединить множество элементов формы в единую структуру и сообщает браузеру, чтобы эта структура воспринималась как единое целое.

Используя тег form , мы можем сообщать браузеру, куда конкретно и каким образом нужно отправить данные, которые введены в элементах формы, чтобы они были обработаны специальной программой.

Тег form это что-то вроде контейнера, в котором хранятся элементы формы. Это парный тег. Зоной его действия, между открывающим

и закрывающим
, определяются элементы, которые будут являться частью формы.

Давайте вернемся к нашему предыдущему примеру и попробуем заключить элементы формы в этот тег:

Имя


Фамилия

Кстати, хотите узнать есть ли смысл в каком-то элементе на вашем сайте с помощью «целей» Яндекс Метрики и Google Analytics?

HTML форма - это инструмент, с помощью которого HTML-документ может послать некоторую информацию в некоторую заранее определенную точку внешнего мира, где информация будет некоторым образом обработана.

Рассказать о формах в Самоучителе, посвященному HTML, достаточно трудно. Причина очень простая: создать форму HTML гораздо проще, чем ту "точку внешнего мира", в которую HTML форма будет посылать информацию. В качестве такой "точки" в большинстве случаев выступает программа, написанная на Перл или Си.

Программы, обрабатывающие данные, переданные формами, часто называют CGI-скриптами. Сокращение CGI (Common Gateways Interface) означает "общепринятый интерфейс шлюзов". Написание CGI-скриптов в большинстве случаев требует хорошего знания соответствующего языка программирования и возможностей операционной системы Unix.

В настоящее время определенное распространение получил язык PHP/FI, инструкции которого можно встраивать прямо в HTML-документы (документы при этом сохраняются в виде файлов с расширением *.pht или *.php).

HTML формы передают информацию программам-обработчикам в виде пар [имя переменной]=[значение переменной] . Имена переменных следует задавать латинскими буквами. Значения переменных воспринимаются обработчиками как строки, даже если они содержат только цифры.

Как устроена HTML форма

Форма открывается тегом

и заканчивается тегом
. HTML-документ может содержать в себе несколько форм, однако формы не должны находиться одна внутри другой. HTML-текст, включая теги, может размещаться внутри форм без ограничений.

Тег

может содержать три атрибута, один из которых является обязательным. Вот эти атрибуты:

Обязательный атрибут. Определяет, где находится обработчик формы.

Определяет, каким образом (иначе говоря, с помощью какого метода протокола передачи гипертекстов) данные из формы будут переданы обработчику. Допустимые значения: METHOD=POST и METHOD=GET . Если значение атрибута не установлено, по умолчанию предполагается METHOD=GET .

Определяет, каким образом данные из формы HTML будут закодированы для передачи обработчику. Если значение атрибута не установлено, по умолчанию предполагается ENCTYPE=application/x-www-form-urlencoded .

Простейшая HTML форма

Для того, чтобы запустить процесс передачи данных из формы обработчику, нужен какой-то орган управления. Создать такой орган управления очень просто:

Встретив такую строчку внутри формы, браузер нарисует на экране кнопку с надписью Submit (читается "сабмит" с ударением на втором слоге, от английского "подавать"), при нажатии на которую все имеющиеся в форме данные будут переданы обработчику, определенному в теге .

Надпись на кнопке можно задать такую, какая нравится, путем введения атрибута VALUE="[Надпись]" (читается "вэлью" с ударением на первом слоге, от английского "значение"), например:

Теперь мы знаем достаточно для того, чтобы написать простейшую HTML форму (пример 11). Она не будет собирать никаких данных, а просто вернет нас к тексту этой главы.

Пример 11

Простейшая форма

Надпись, нанесенную на кнопку, можно при необходимости передать обработчику путем введения в определение кнопки атрибута NAME=[имя] (читается "нэйм", от английского "имя"), например:

При нажатии на такую кнопку обработчик вместе со всеми остальными данными получит и переменную button со значением Поехали! .

В форме может быть несколько кнопок типа submit с различными именами и/или значениями. Обработчик, таким образом, может действовать по-разному в зависимости от того, какую именно кнопку submit нажал пользователь.

Как HTML форма собирает данные

Существуют и другие типы элементов . Каждый элемент должен включать атрибут NAME=[имя] , определяющий имя элемента (и, соответственно, имя переменной, которая будет передана обработчику). Имя должно задаваться только латинскими буквами . Большинство элементов должны включать атрибут VALUE="[значение]" , определяющий значение, которое будет передано обработчику под этим именем. Для элементов и , однако, этот атрибут не обязателен, поскольку значение соответствующей переменной может вводиться пользователем с клавиатуры.

Основные типы элементов :

TYPE=text

Определяет окно для ввода строки текста. Может содержать дополнительные атрибуты SIZE=[число] (ширина окна ввода в символах) и MAXLENGTH=[число] (максимально допустимая длина вводимой строки в символах).

Пример:

Определяет окно шириной 20 символов для ввода текста. По умолчанию в окне находится текст Иван, который пользователь может редактировать. Отредактированный (или неотредактированный) текст передается обработчику в переменной user .

TYPE=password

Определяет окно для ввода пароля. Абсолютно аналогичен типу text , только вместо символов вводимого текста показывает на экране звездочки (*). Пример:

Определяет окно шириной 20 символов для ввода пароля. Максимально допустимая длина пароля - 10 символов. Введенный пароль передается обработчику в переменной pw .

TYPE=radio

Определяет радиокнопку. Может содержать дополнительный атрибут checked (показывает, что кнопка помечена). В группе радиокнопок с одинаковыми именами может быть только одна помеченная радиокнопка.

Пример:

9600 бит/с
14400 бит/с
28800 бит/с

Определяет группу из трех радиокнопок, подписанных 9600 бит/с, 14400 бит/с и 28800 бит/с. Первоначально помечена первая из кнопок. Если пользователь не отметит другую кнопку, обработчику будет передана переменная modem со значением 9600 . Если пользователь отметит другую кнопку, обработчику будет передана переменная modem со значением 14400 или 28800 .

TYPE=checkbox

Определяет квадрат, в котором можно сделать пометку. Может содержать дополнительный атрибут checked (показывает, что квадрат помечен). В отличие от радиокнопок, в группе квадратов с одинаковыми именами может быть несколько помеченных квадратов.

Пример:

Персональные компьютеры
Рабочие станции
Серверы локальных сетей
Серверы Интернет

Определяет группу из четырех квадратов. Первоначально помечены второй и четвертый квадраты. Если пользователь не произведет изменений, обработчику будут переданы две переменные: comp=WS и comp=IS .

TYPE=hidden

Определяет скрытый элемент данных, который не виден пользователю при заполнении формы и передается обработчику без изменений. Такой элемент иногда полезно иметь в форме, которая время от времени подвергается переработке, чтобы обработчик мог знать, с какой версией формы он имеет дело. Другие возможные варианты использования Вы вполне можете придумать сами.

Пример:

Определяет скрытую переменную version , которая передается обработчику со значением 1.1 .

TYPE=reset

Определяет кнопку, при нажатии на которую форма HTML возвращается в исходное состояние. Поскольку при использовании этой кнопки данные обработчику не передаются, кнопка типа reset может и не иметь атрибута name .

Пример:

Определяет кнопку Очистить поля формы, при нажатии на которую форма HTML возвращается в исходное состояние.

Помимо элементов , формы HTML могут содержать меню

Все атрибуты обязательны. Атрибут NAME определяет имя, под которым содержимое окна будет передано обработчику (в примере - address). Атрибут ROWS устанавливает высоту окна в строках (в примере - 5). Атрибут COLS устанавливает ширину окна в символах (в примере - 50).

Текст, размещенный между тегами , представляет собой содержимое окна по умолчанию. Пользователь может его отредактировать или просто стереть.

Важно знать, что русские буквы в окне