Не раз нам доводилось видеть Web-страницы, на которых нам предлагалось
шести некоторые данные в поля ввода. В HTML существует механизм получения
данных от пользователя. Естественно, эти данные необходимо еще обработать,
но этим занимаются специализированные программы. Рассмотрим механизм их
взаимодействия с Web-страницами.
Итак, пользователь загрузил себе Web-страницу, на которой располагаются
эрганы управления для ввода информации. Все они объединены в общую совокупность,
называемую формой. Каждая форма обладает кнопкой,
по нажатию на которую введенные пользователем данные передаются обрабатывающей
программе, Эта программа размещается на Web-сервере, который и обслуживает
данную страницу. Подобные программы могут создаваться при юмощи самых
различных технологий программирования. Объединяет их шшь единый порядок
получения данных от Web-страницы. Данные передаются при помощи шлюзового
интерфейса CGI (Common Gateway nterface). Поэтому обрабатывающие программы
часто называют CGI-триложениями или CGI-скриптами.
Итак, приложение получает данные и обрабатывает их. Затем оно может гибо
послать некое электронное письмо, либо произвести некоторую операцию в
Тег <form> с его закрывающим близнецом </form>, по сути, создают контейнер для размещения органов ввода информации. Большая часть эт органов ввода реализуется при помощи тега <input>. Продемонстрируем эт на небольшом примере (рис. 1.32).
Листинг 1.33
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html> <head>
<title><?>opMbi</title> </head> <body>
<form action="http;7/,www.iaysite.com/cgi-bin/tesl-.exe"
method="post">
<р>Поле для ввода строки текста < input type="text"x/p>
<input type="submit" value="OTnpaBMTb"> </form>
</body>
</html>
Рис. 1.32. Окно браузера с результатом отображения файла, приведенного в листинге 1.33
Итак, на иллюстрации видно, что мы смогли создать поле ввода текста и кнопку, при нажатии на которую введенная пользователем информация будет отправлена CGI-приложению для обработки. А если мы посмотрим на код листинга, то мы увидим, что и кнопка и поле ввода создавались при помощи одного и того же тега <input>. Регулировка свойств этого тега производится при помощи его многочисленных параметров, которые мы сейчас и рассмотрим.
Итак, мы рассмотрели параметры, применяемые в теге <input>.
Но мы уже аем, что при помощи данного тега мы можем создавать самые различные
объекты форм. Пришло время детально разобраться с ними.
Объекты, входящие в форму, разделяются на два типа — органы ввода данах
и кнопки, инициирующие различные действия. Сначала посмотрим, как мы можем
создавать органы ввода.
Одним из самых распространенных объектов форм является однострочное поле
ввода. В листинге 1.33 мы видели, что оно создается при помощи паметра
type со значением text.
При этом достаточно часто нам надо задавать ограничения на максимально
возможное количество символов, которые эльзователь может внести в это
поле. Это ограничение реализуется при помощи параметра maxlength.
Существует модификация однострочного поля ввода текста, которая предназначена
именно для ввода секретной информации, например, паролей. Они в отображают
вводимый текст, а заменяют его звездочками. Создание подобных полей ввода
производится при помощи следующей конструкции:
<input type="password">
Использование типа checkbox позволяет
создавать независимые переключатели. Они представляют собой всем знакомые
квадратики, в которых щелчком мыши мы можем устанавливать и снимать флажки
в виде галочек. При том используется параметр value.
Значение этого параметра будет передана в обрабатывающее CGI-прияожение,
если пользователь взведет флажок данном независимом переключателе.
'акже мы можем создавать группы переключателей, которые часто называет
зависимыми переключателями. В этой группе пользователь может выбирать
и помечать только один переключатель. Каждый переключатель создаtтся при
помощи тега <lnput> с параметром type,
которому приписано значение radio. Чтобы браузер понял, что несколько
переключателей принадлежат к одной группе, необходимо, чтобы их значения
параметра name были одинаковыми. Но при этом у них обязательно должны
различаться значения параметров value.
Рассмотрим на примере правила создания и отображения рассмотренных органов
ввода информации.
Листинг 1.34
:! DOCTYPE HTML РИВЫС "-//W3C//DTD HTML 4 . 01//EN"
'http://www.w3.Qrg/TR/html4/strict.dtd">
:html> <head> , <title><t>opMbK/title> </head>
<form action="http://www.mysite.com/.cgi-bin/test.exe" method="post">
.
<р>Поле для ввода строки текста <input type="text"x/p>
<р>Поле для ввода пароля <input type="password"x/p>
<р>Независимый переключатель <input type»"checkbox"
value="checked"x/p> <р>Группа переключателей</р>
<р>Аньтернатива 1 <input type="radio" name="groupl"
value="checkl"x'/p>
<р>Альтернатива 2 ,<input type»"^adio" name="groupl"
value="checki
checkedx/p>
<р>Альтернатива 3 <input type="radio" name="groupl"
value="check3"x/p> '
<input type="submit" value="Отправить"> </form>
' ...
</body> </html>
На приведенной иллюстрации (рис. 1.33) видно, как отображается введен
ный текст в обычном поле ввода и в поле ввода конфиденциальной инфор мации.
А в листинге 1.34 четко показано, как мы можем создавать незави симые
переключатели и группы переключателей. При этом, второму по сче ту переключателю
в группе мы изначально установили взведенное состояни по умолчанию. Но
пользователь, естественно, всегда может сам выбрат требуемую альтернативу.
При помощи параметра type с приписанным значением
hidden мы може« создавать скрытые поля. Это
поле не только не позволяет пользователю вво дать какую-либо информацию,
но и вообще не отображается в окне про смотра. Данный тип поля применяется
обычно для служебных целей разработчиков.
А при помощи значения file мы можем создавать
поле ввода имени файла При этом, рядом с полем ввода текста автоматически
создается кнопкг с наименованием Обзор, при нажатии на которую открывается
стандартный диалог выбора файла.
Помимо органов ввода информации, мы можем размещать еще и органы управления.
В данном случае Ими являются кнопки. В формах используется три вида кнопок.
Кнопка типа "submit" отправляет введенные пользователем данные
обрабатывающему CGI-приложению. Кнопка "reset" убирает из органов
ввода информацию, внесенную пользователем, и отображает информацию, установленную
по умолчанию. Существуют и простые кнопки, реакцию которых мы можем программировать
самостоятельно при помощи скриптовых языков. Также, вместо кнопки "submit"
мы можем использовать любое графическое изображение. Рассмотрим способы
создания этих органов управления.
Рис. 1.33. Окно браузера с результатом отображения файла, приведенного в листинге. 1.34
Кнопка типа "submit" создается при помощи конструкции следующего вида:
<input type="submit" vа1uе="Подтвердить">
Как видно, создание кнопки производится при помощи параметра type,
a надпись на ней задается значением параметра value.
Если же нам необходимо создать кнопку очистки полей ввода информации,
мы можем применить следующий фрагмент кода:
<input type="reset" value="Oчистить">
А для простой кнопки мы используем конструкцию следующего вида:
<input type-"button" value="Kнопка">
Мы уже говорили, что вместо обычной кнопки типа "submit" мы можем использовать любое графическое изображение. Для этого мы применяем такой фрагмент кода:
<input type="invage" src="http://www.mysite.com/image/picl.gif">
В этом случае нет нужды использовать параметр
value
так как не нужно задавать надпись на кнопке. Но тогда необходимо использовать параметрsrc
значением которого является URL используемого графического файла.A сами элементы выпадающего списка создаются при помощи тегов <option>. Эти теги тоже имеют свои свойства. Но их не так уж и много.
Теперь рассмотрим несложную процедуру создания выпадающих списков в формах HTML-документов (рис. 1.34).
Листинг 1.35
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http: //www. w3.org/TR/htm!4/Strict.dtd">
<html>
<head>
<title><t>opMfci</title>
<body>
<form action="http: //www.mysite.com/cgi-bin/test.exe
<select name=""menul"> <option value=*"sell">l
nyHKT</option> <option value="se!2" select«d>2 nyHKT</option>
coptibn value«="sel3">3 nyHKT</option> </select>
<input type="submit" уа1ие»"Отправить"> </form>
-
</body> 'html> /
Рис. 1.34. Окно браузера с результатом отображения файла, приведенного в листинге 1.35
Там осталось рассмотреть только один элемент ввода данных. Это многострочное поле текстового ввода. Оно реализуется при помощи тега textareax Этот тег создает область ввода, которая может быть достаточно бширной, и применяется обычно для ввода средних и больших объемов екстовой информации. Тег не может обойтись без параметров. И мы обязательно их рассмотрим.
Теперь посмотрим, как создаются подобные поля ввода (рис. 1.35).
Листинг 1.36
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.Q1//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html> <head>
<title>OopMbi</title> </head>. - .
<body>
<form action=»"http://www.mysite.com/cgi-bin/test.exe" method="post">
<textarea rows»5 cols»2?}>
Текст, который будет отображаться в многострочном поле, ввода </,textarea>
<p><input type="submit" уа1ие="0тправить"х/р>
</form> </body>
</html>
Помимо этих полей ввода есть и еще один объект, который относится к
созданию форм. Мы можем создавать так называемые текстовые метки для неких
органов ввода данных.
Ведь на самом деле радиокнопки и независимые переключатели достаточно
малы по своим размерам, и для их активации неохбодимо точно попасть мышью
в их активную область Это не всегда бывает удобно. Поэтому во многих программах
с хорошо продуманным пользовательским интерфейсом можно активизировать
подобные органы управления еще и при помощи щелчка мышью на их текстовые
наименования. Точно такую же возможность предоставляет нам и HTML
Рис. 1 .35. Окно браузера с результатом отображения файла, приведенного в листинге 1 .36
Для создания подобных текстовых пометок и заголовков, связанных с конкретными элементами ввода данных, мы можем использовать тег <label> Но привязывать подобные метки мы сможем только к тем органам ввода данных, для которых мы явно задали идентифицирующий фаметр id. Именно по нему и устанавливается соответствие между меткой и объектом формы. Основным параметром для тега <label> служит параметр for, значением которого является значение параметра id объекта, к которому данная текстовая метка и привязывается. Приведем Пример создания подобной связи. Сначала мы создадим независимый переключатель, а затем присоединим к нему связанный текстовый заголовок. Производится подобная операция при помощи следующего фрагмента кода:
<label for="сheck1">Независимый переключатель</label>
Input type="checkbox" name="check" value="checked"
id="checkl">
Впрочем, можно обойтись и без параметра for, если тег, объявляющий связанный
орган ввода данных, разместить между тегами <label>
И на этом мы можем закончить рассмотрение процедуры создания форм для
ввода данных в статических HTML-документах.