HTML-формы HTML-формы предназначены для пересылки
данных от удаленного пользователя к Web-серверу. С их помощью можно организовать
простейший диалог между пользователем и сервером (например, регистрацию пользователя
на сервере или выбор нужного документа из представленного списка). Формы поддерживаются
всеми популярными браузерами. (Различные аспекты передачи данных Web-серверу будут рассмотрены здесь ) Мы предполагаем, что читатель знаком с основами языка HTML и структурой HTML-документа. В этом разделе рассмотрены средства HTML, используемые для создания форм. В описании тэгов приведены только наиболее употребительные атрибуты и опущены атрибуты, специфические для отдельных браузеров. Тэг <FORM> <FORM ACTION="URL" МЕТНОО=метод_передачи ЕНСТУРЕ=М1МЕ-!гип> содержание_формы </FORM> В HTML-документе для задания формы используются тэги <FORM>. . .</FORM>, отмечающие, соответственно, начало и конец формы. Документ может содержать несколько форм, но они не могут быть вложены одна в другую. Тэг <FORM> имеет атрибуты ACTION, METHOD и ENCTYPE. Отдельные браузеры (Netscape, Internet Explorer) поддерживают дополнительные атрибуты помимо стандартных, например, CLASS, NAME, STYLE и др. Атрибут ACTION — единственный обязательный. Его значением является адрес (URL) CGI-программы, которая будет обрабатывать информацию, извлеченную из данной формы. Атрибут METHOD определяет метод
пересылки данйых, содержащихся в форме, от браузера к Web-серверу. Он может
принимать два значения; GET (по умолчанию) и POST.
При использовании метода GET данные формы пересылаются в составе URL запроса, к которому присоединяются после символа "?" в виде совокупности пар переменная=значение, разделенных символом "&". В этом случае первая строка запроса может иметь следующий вид: После выделения данных из URL сервер присваивает их переменной среды QUERY_STRING, которая может быть использована CGI-программой. При использовании метода POST данные формы пересылаются Web-серверу в теле запроса, после чего передаются сервером в CGI-программу через стандартный ввод. Значением атрибута ENCTYPE является медиа-тип, определяющий формат кодирования данных при передаче их от браузера к серверу. Браузер кодирует данные, чтобы избежать их искажения в процессе передачи. Возможны два значения этого атрибута: appiication/x-wuw-form-uriencoded, используемое ПО умолчанию, И multipart/form-data.
Как видно из примера на рис. 15.1, форма отображается в окне браузера в виде набора стандартных элементов управления, используемых для заполнения полей формы значениями, которые затем передаются Web-серверу. Значение вводится в поле ввода пользователем или назначается по умолчанию. Для создания полей средствами языка HTML существуют специальные тэги: <INPUT>, <SELECT>, <TEXTAREA>, которые могут употребляться только внутри тэга <FORM>. Тэг <INPUT> <INPUT ТУРЕ=тип_лоля_ввода ЫАМЕ=имя_лоля_ввода другие_атрибуты> Наиболее употребительный тэг, с помощью которого можно генерировать внутри формы поля для ввода строки текста, пароля, имени файла, различные кнопки. Он имеет два обязательных атрибута: TYPE и NAME. Атрибут TYPE определяет тип поля: селекторная кнопка, кнопка передачи и др. Атрибут NAME определяет имя, присваиваемое полю. Оно не отображается браузером, а используется в качестве идентификатора значения, передаваемого Web-серверу. Остальные атрибуты меняются в зависимости от тира поля. Ниже приведено описание типов полей, создаваемых при помощи тэга <INPUT>, и порождаемых ими элементов ввода.
Первоначальное значение текстового поля.
Создает элемент ввода строки текста, отличающийся от предыдущего только тем, что все вводимые символы представляются в виде символа *.
Создает поле для ввода имени локального файла, сопровождаемое кнопкой Browse. Выбранный файл присоединяется к содержимому формы при пересылке на сервер. Имя файла можно ввести непосредственно, или, воспользовавшись кнопкой Browse, выбрать его из диалогового окна, отображающего список локальных файлов. Для корректной передачи присоединенного файла следует установить значения атрибутов формы равными ENCTYPE="multipart/form-data" И METHOD=POST. В Противном случае будет передана введенная строка, то есть маршрутное имя файла, а не его содержимое. Дополнительные атрибуты MAXLENGTH и SIZE имеют тот же смысл, что и для элементов типа TEXT и PASSWORD.
Если переключатели образуют группу, то передаваемым значением является строка разделенных запятыми значений атрибута VALUE всех выбранных элементов.
<INPUT TYPE=SUBMIT NAME="submit_button" VALUE="OK">, то в список параметров формы, передаваемых на сервер, включается параметр submit_button="OK". Внутри формы могут существовать несколько кнопок передачи.
Если на изображении элемента щелкнуть мышью, то координаты указателя мыши в виде NAME.x=n&NAME.y=m включаются браузером в список параметров формы, посылаемых на сервер.
Тэг <SELECT> <SELECT NAME=HM*_n<afl# SIZE=n MULTIPLE> элементы OPTION </SELECT> Тэг <SELECT> предназначен для того, чтобы организовать внутри формы выбор из нескольких вариантов без применения элементов ввода типа CHECKBOX и RADIO. Дело в том, что если элементов выбора много, то представление их в виде переключателей и радиокнопок увеличивает размеры формы, делая ее труднообозримой. С помощью тэга <SELECT> варианты выбора более компактно представляются в окне браузера в виде элементов ниспадающего меню или списка прокрутки. Тэг имеет следующие атрибуты.
Элементы меню задаются внутри тэга <SELECT> при помощи тэга <OPTION>: <OPTION SELECTED УАШЕ=строка>содержимое_тэга</ОРТION> Закрывающий тэг </OPTION> не используется. Атрибут VALUE содержит значение, которое пересылается серверу, если данный элемент выбран из меню или списка. Если значение этого атрибута не задано, то по умолчанию оно устанавливается равным содержимому тэга <OPTION>. Например, элементы <OPTION VALUE=Red>Red <OPTION>Red имеют одно значение Red. В первом случае оно установлено явно при помощи атрибута VALUE, во втором — по умолчанию. Атрибут SELECTED изначально отображает элемент как выбранный. Тэг <TEXTAREA> <TEXTAREA НАМЕ=имя ROWS=m COLS=n> текст </TEXTAREA> Создает внутри формы поле для ввода многострочного текста, отображаемое в окне браузера в виде прямоугольной области с горизонтальной и вертикальной полосами прокрутки. Для пересылки на сервер каждая введенная строка дополняется символами %OD%OA (ASCII-символы "Возврат каретки" и "Перевод строки" с предшествующим символом %), полученные строки объединяются в одну строку, которая и отправляется на сервер под именем, задаваемым атрибутом NAME. Атрибуты:
Между тэгами <textarea> и </textarea> можно поместить текст, который будет отображаться по умолчанию. Пример формы Ниже представлен пример формы, включающей набор характерных полей и HTML-код, использованный для ее создания. <htmlxheadxtitle>пpимep формы</^д^1ех/пеаЗ> <body> <b2>Регистрационная страница Клуба любителей фантастики</b2> Заполнив анкету, вы сможете пользоваться нашей электронной библиотекой. <br> <form method="get" action="/cgi-bin/registrar.cgi"> <pre> Введите регистрационное имя: <input type="text" name="regnarae"> Введите пароль: <input type="password" name="passwordl" max-length=8> Подтвердите пароль: <input type="password" name="password2" max-length=8> </pre> Ваш возраст: <input type="radio" name="age" value="lt20" checked >До 20 <input type="radio" name="age" value="20_30">20-30 <input type="radio" name="age" value="30_50">30-50 <input type="radio" name="age" value="gt50">CTapiue 50 <brxbr> На каких языках читаете: <input type="checkbox" name="language" value="russian" checked>pycciorii <input type="checkbox" name="language" ^а1ие="english">английский <input type="checkbox" name="language" Уа1ие="£гепсЬ">французский <input type="checkbox" name="language" value="germnan">немецкий <brxbr> Какой формат данных является для Вас предпочтительным <br> <select name="format" size=2 > <option selected value="HTML">HTML <option value="Plain text">Plain text <option value="PostScript">PostScript <option value="PDF">PDF </select> <brxbr> Ваши любимые авторы: <br> <textarea name="wish" cols=40 rows=3> </textarea> <brxbr> <input type="submit" value="OK"> <input type="reset" уа!ие="0тменить"> </form> </body> \ </html> Данная форма содержит:
Итак, пользователь заполнил форму и щелкнул кнопку передачи Submit. Дальнейшее прохождение данных выглядит следующим образом. 1. Информация кодируется и пересылается на Web-сервер, который передает ее для обработки CGI-программе. 2. CGI-программа обрабатывает полученные данные, возможно, обращаясь за помощью к другим программам, выполняющимся на том же компьютере, и генерирует новый "виртуальный" HTML-документ, либо определяет ссылку на уже имеющийся. 3. Новый HTML-документ или ссылка передаются CGI-Программой Web-серверу для возврата клиенту. Рассмотрим эти шаги более подробно. Поделитесь этой записью или добавьте в закладки | Полезные публикации |