Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
voprosy_k_gipertextovym_tekhnologiam.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
64.45 Кб
Скачать
  1. Управляющие элементы html-формы. Обработка данных html-формы.

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

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

Для отправки формы на сервер используется кнопка Submit, того же можно добиться, если нажать клавишу Enter в пределах формы. Если кнопка Submit отсутствует в форме, клавиша Enter имитирует ее использование, но только в том случае, когда в форме имеется только один элемент <input>. Если таких элементов два и более, нажатие на <Enter> не вызовет никакого результата.

Когда форма отправляется на сервер, управление данными передается программе, заданной атрибутом action тега <form>. Предварительно браузер подготавливает информацию в виде пары «имя=значение», где имя определяется атрибутом name тега <input>, а значение введено пользователем или установлено в поле формы по умолчанию.

Параметры перечисляются после вопросительного знака, указанного после адреса CGI-программы и разделяются между собой символом амперсанда (&). Нелатинские символы преобразуются в шестнадцатеричное представление (в форме %HH, где HH — шестнадцатеричный код для значения ASCII-символа), пробел заменяется на плюс (+).

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

В HTML 4.01 определены следующие типы управляющих элементов:

Кнопки - задаются с помощью элементов BUTTON и INPUT. Различают:

» кнопки отправки - при нажатии на них, они осуществляют отправку формы серверу;

» кнопки сброса - при нажатии на них, управляющие элементы принимают первоначальные значения;

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

Зависимые переключатели (переключатели с зависимой фиксацией) - задаются элементом INPUT и представляют собой переключатели "вкл/выкл". Если несколько зависимых переключателей имеют одинаковые имена, то они являются взаимоисключающими. Это значит, что если одна из них ставится в положение "вкл", то все остальные автоматически - в положение "выкл". Именно это и является преимуществом их использования.

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

Меню - реализуется с помощью элементов SELECT, OPTGROUP и OPTION. Меню предоставляют пользователю список возможных вариантов выбора.

Ввод текста - реализуется элементами INPUT, если вводится одна строка, и элементами TEXTAREA - если несколько строк. В обоих случаях введенный текст становится текущим значением управляющего элемента.

Выбор файлов - позволяет вместе с формой отправлять выбранные файлы, реализуется HTML-элементом INPUT.

Скрытые управляющие элементы - создаются управляющим элементом INPUT.

Форма создается с помощью контейнера <FORM>, внутри которого располагаются теги элементов пользовательского интерфейса – поля ввода данных, текстовые области, переключатели и флажки, раскрывающиеся списки и кнопки. В объектной модели документа каждой форме соответствует свой объект, входящий в коллекцию forms. Форма служит для приема данных от посетителя и отправки их серверной программе. Для отправки данных на сервер сценарий не обязателен. Чтобы отправить данные, достаточно в теге <FORM> атрибуту ACTION присвоить значение URL-адреса получателя, а в самой форме разместить кнопку типа Отправить (submit). Если атрибут ACTION не указан или его значение пусто, данные формы не будут отправлены. Щелчок на этой кнопке инициализирует отправку данных.

Атрибут ACTION определяет обработчик формы и должен иметь URL-адрес файла или программы, которая получает и обрабатывает отправленные данные.

Если потребуется отправить данные формы по электронной почте, то значением ACTION является строка вида:

mailto:<адрес e-mail>

Можно также указать тему(subject) сообщения:

mailto:<адрес e-mail>?subject=<тема сообщения>

Кроме атрибута ACTION в теге <FORM> следует указать еще два атрибута: METHOD и ENCTYPE. Атрибут METHOD имеет значение POST или GET. При использовании метода GET передаваемые данные видны в адресной строке браузера и следуют за адресом. Обычно этот метод используется для передачи небольшого объема данных. Если у вас нет особых причин задуматься об этом, выбирайте значение POST. Атрибуту ENCTYPE присвойте значение "text/plain". В этом случае отправляемое сообщение будет представлять собой последовательность пар вида имя_элемента=значение.

Здесь имя_элемента – значение атрибута NAME в теге элемента, содержащегося в форме, а значение – значение атрибута VALUE в этом же теге. Если не указать ENCTYPE, то сообщение будет представлено в неудобочитаемом (закодированном) виде.

Данные, отображаемые web-браузером, представляют собой HTML-страницу.

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

К серверным приложениям относятся CGI-приложения и ISAPI-приложения.

В отличии от CGI-приложений, выполняемых в отдельном процессе, ISAPI-приложения реализуются как DLL-библиотеки.

Результатом выполнения CGI или ISAPI-приложения чаще всего является динамически сформированная HTML-страница.

Среда программирования Delphi позволяет создавать CGI-приложения.

Если WEB-броузер посылает в качестве запроса URL-адрес CGI-приложения, то web-сервер запускает это приложение и передает ему параметры запроса через стандартный ввод. Сформированная в результате выполнения CGI-приложения HTML-страница возвращается WEB-серверу через стандартный вывод.

Для того, чтобы создать CGI-приложение, запускаемое на сервере, следует создать проект Web Server Application и в диалоге New Web Server Application выбрать тип серверного приложения (например, CGI Stand-alone executable).

В результате будет создан проект, содержащий главный файл приложения и модуль Unit1.

Для того чтобы создать код, формирующий HTML-страницу, следует создать объект типа TWebActionItem (например, WebActionItem1 ), а далее создать для данного объекта обработчик события действия OnAction.

Код HTML-страницы записывается в свойство Content объекта Response.

После размещения созданного CGI-приложения в каталог WEB-сервера, предназначенный для исполняемых файлов, web -браузер может формировать запрос, указывая URL-адрес данного CGI-приложения.

Разбор параметров

Для доступа к значению формы из GET-запроса используется метод QueryFields объекта типа TWebRequest.

Для доступа к значению формы из POST-запроса используется метод ContentFields объекта типа TWebRequest.

Для доступа к параметрам самого запроса используется метод GetFieldByName.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]