Создание HTML-форм: тэг FORM

назад

HTML-формы используются для связи с Web-приложеним (CGI-программой). Формы создаются с помощью тэгов, которыми отмечаются поля ввода на Web-странице.

После того как форма заполнена, все данные, введенные пользователем, передаются Web-серверу, который передает их дальше CGI-программе для обработки.

Тэг <FORM>



Тэг <FORM> используется для создания формы на Web-странице и для того, чтобы указать, что все поля внутри этого тэга принадлежат одной форме.

Единственный способ поместить на странице поле ввода - заключить его в тэг <FORM>.

Для создания формы применяется следующая конструкция:


<FORM>
<!-- Здесь вставляются поля формы -->
</FORM>

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

Атрибут ACTION

Обработка формы в некотором смысле аналогична обработке ссылки, так ка при обработке формы у сервера также запрашивается определенный ресурс. В общем случае URL этого ресурса указывает на CGI-программу, которая должна обработать данные, введенные в форму. Создавая форму, в атрибуте ACTION вы указываете, какой ресурс обрабатывает данные этой формы. В следующем примере данные будут переданы программе cgi-bin/example.pl


<FORM ACTION="cgi-bin/example.pl">
<!-- Здесь вставляются поля формы -->
</FORM>

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

Атрибут METHOD

Этот атрибут указывает, каким способом передать данные серверу. Для этого существуют два метода - GET и POST. Вообще говоря, эти методы взаимозаменяемы, по крайней мере с точки зрения создания форм. При написании CGI-программы вам уже придется подумать, какой из методов передачи данных применить. Мы обсудим эту проблему в разделе "Обработка ввода".

Если метод не указан явно в тэге <FORM>, по умолчанию применяется метод GET.

Атрибут ENCTYPE

Этот атрибут указывает, как кодируются данные при передаче серверу. Типы кодирования перечислены в спецификации MIME. По умолчанию применяется тип кодирования application/x-www-form-urlencoded. Второй тип кодирования, который применяется только для полей, связанных с файлами, - multipart/form-data.

Атрибут TARGET

Если ваша страница состоит из нескольких фреймов, вы сможете с помощью атрибута TARGET указать, в каком фрейме отображать результаты обработки данных формы. Например, если ваша страница имеет два фрейма, left_nav и main_content, можете расположить поисковую форму в левом фрейме, а результаты поиска в правом, основном, фрейме. Для этого вы должны указать в тэге <FORM> атрибут TARGET="main_content". По умолчанию результаты обработки формы попадают в тот же фрейм, в котором находится сама форма.