Формы (Forms) позволяют запросить у пользователя информацию требуемую для дальнейшие работы сервера, например, "права доступа" для регистрации или комментарии о работе сервера. Формы составляются из одного (или нескольких) запросов к пользователю, ответом на которые должен быть ввод текста или выбор условий.
Передаваемая на сервер информация активизирует специальную программу для ее обработки (CGI Script). Активные программы помимо обработки запросов от пользователя, могут выполнять множество различных функций таких как: формирование активных WWW страниц, обращение к базам данных, поиск информации на сервере, запуск вычислительных программ и выполнения разрешенных, в зависимости от ответа пользователя, действий по дальнейшему предоставлению информации.
Взаимодействие активных программ с протоколом передачи гипертекста (HTTP) организовано через спецификацию интерфейса между сервером httpd и внешними, вызываемыми программами - CGI (Common Gateway Interface).
Для создания формы используется команда FORM, внутри которой содержится как минимум одна команда INPUT.
Команда FORM задает тип запроса информации от пользователя.
Команда INPUT определяет способ и адрес для запрашиваемой от пользователя информации.
Пример задания формы:
<FORM ACTION="http://intranet/local" METHOD=POST> <P>Имя пользователя <BR> <INPUT NAME="CONTROL1" TYPE=TEXTBOX VALUE="Введите Ваше имя"> <P>Пароль <BR><INPUT TYPE="PASSWORD" NAME="CONTROL2"> <P>Выберете цвет <BR><INPUT TYPE="RADIO" NAME="CONTROL3" VALUE="0" CHECKED>Красный <INPUT TYPE="RADIO" NAME="CONTROL3" VALUE="1">Зеленый <INPUT TYPE="RADIO" NAME="CONTROL3" VALUE="2">Голубой <P>Ваши комментарии <BR><TEXTAREA NAME="CONTROL4" ROWS="2" COLS="25"></TEXTAREA> <P><INPUT NAME="CONTROL5" TYPE=CHECKBOX CHECKED> Подтвердить получение <P><INPUT TYPE="SUBMIT" VALUE="Готово" OnClick="alert('Это только пример')"> <INPUT TYPE="RESET" VALUE="Отменить"> </FORM> |
Что даст:
Атрибуты команды FORM:
Внутри команды FORM может находиться все, что угодно, кроме другого
оператора FORM. Согласно
спецификации, для задания интерфейсных элементов внутри команды FORM
используются команды INPUT,
SELECT, и TEXTAREA.
SELECT имеет закрывающую команду. Внутри оператора SELECT,
разрешена только последовательность команд OPTION - за каждым из которых следует некоторое
количество простого текста (без HTML разметки); например:
Атрибуты команды SELECT:
Атрибуты команды OPTION:
Атрибуты команды INPUT:
TEXTAREA имеет полосы прокрутки, так что может быть введено любое количество текста.
TEXTAREA требует закрывающей команды. TEXTAREA без содержания по
умолчанию выглядит так:
TEXTAREA с содержанием по умолчанию выглядит так:
Содержание по умолчанию должно быть строгим ASCII текстом. Символы перевода строки
воспринимаются (так, что в примере выше до и после текста
"Содержание поля ввода по умолчанию" будет пустая строка).
Команда ISINDEX посылает на сервер только одно сообщение,
указанное в поле ввода. Как правило используется для оформления
заданий на поиск.
Синтаксис команды ISINDEX
<ISINDEX
Пример
Синтаксис
<FORM ACTION="url" METHOD="POST"> ... </FORM>
Передается через переменную окружения CONTENT_TYPE.
Значения параметра window:
window
имя окна, в котором будет выведен результат, если указанное
имя отсутствует, то результат будет показан в новом окне;
_blank
показать результат в новом окне;
_parent
показать результат в родительском окне;
_self
показать результат в том же окне;
_top
показать результат в основном окне.
Команда SELECT
Внутри <FORM> ... </FORM>, может присутствовать любое количество команд SELECT,
в сочетании с другими HTML-элементами (включая INPUT и TEXTAREA)
и текстом (кроме команды FORM).
Команда SELECT представляется как список.
<SELECT NAME="my-menu">
<OPTION VALUE="1" SELECTED> First option.
<OPTION VALUE="2"> Second option.
</SELECT>
Команда INPUT
броузеры четвертых версий позволяют организовать передачу файлов на сервер
(File - Upload) - для этого используется значение
TYPE=FILE и устанавливается режим передачи ENCTYPE.
hidden
Пользователю не предлагается поля для ввода, но содержимое команды передается
при подтверждении и посылке формы. Это значение может быть использовано для
передачи информации состояния при взаимодействии клиента сервера.
<INPUT TYPE=HIDDEN NAME=custom VALUE="c12-234-8534">
image
Картинка, по которой вы можете сделать щелчок мышью или другим указывающим
устройством, что приводит к немедленному подтверждению и отсылке формы.
Координаты выбранной точки измеряются в точках от верхнего левого угла и
возвращаются (наряду с другими компонентами формы) точно так же, как для
команды IMG.
text
Поле ввода текста, значение по умолчанию.
password
Поле ввода пароля; вводимые символы представляются как звездочки.
checkbox
Кнопка, принимающая положения on (включено) и off(выключено).
radio
Кнопка, принимающая положения on и off; причем остальные кнопки с тем-же
параметром NAME ведут себя по принципу "одна из многих".
submit
Кнопка, действие которой сводится к отсылке содержимого заполненной формы
на сервер запросов.
reset
Кнопка, которая устанавливает во всех интерфейсных элементах значения по умолчанию.
Команда TEXTAREA
Команда TEXTAREA может быть использована для расположения многострокового поля ввода с
необязательным содержимым по умолчанию в форме. Атрибуты команды TEXTAREA следующие:
NAME= символическое имя поля ввода.
ROWS= число строк в поле ввода
(высота).
COLS= число столбцов в поле ввода (ширина).
<TEXTAREA NAME="foo" ROWS=4 COLS=40></TEXTAREA>
<TEXTAREA NAME="foo" ROWS=4 COLS=40>
Содержание поля ввода по умолчанию
</TEXTAREA>
Команда ISINDEX
ACTION=url
PROMPT=prompt-text>
Атрибуты команды ISINDEX:
Если атрибут PROMPT= не используется, выводится следующее сообщение
в a text box: "You can search this index. Type the keyword(s) you want to
search for:"
После нажатия пользователем ENTER, набранный текст добавляется к
указанному адресу URL (по аналогии с методом GET для отправки FORM).
<ISINDEX ACTION="http://www.ict.nsk.su/cgi-bin/test-cgi.sh"
PROMPT="Тест ISINDEX">