HTML: Популярный самоучитель
Шрифт:
В отличие от get, метод post позволяет передавать CGI-приложению практически любые данные. При использовании метода post браузер отправляет приложению не строку URI с присоединенными данными, а по специальным правилам упаковывает данные формы и только после этого отправляет их CGI-приложению. Однако для того, чтобы с использованием метода post можно было пересылать бинарные или текстовые данные, для которых недостаточно символов кодировки ASCII, нужно указывать значения атрибута enctype элемента FORM равным multipart/form-data.
9.2. Элементы управления формы
Ранее были рассмотрены вопросы по созданию и настройке форм. Однако данные в формах
Стандартные элементы управления
Стандартными являются все элементы управления, которые можно поместить на HTML-форму. Просто нужно как-то объединить и назвать элементы управления, которые используются чаще всего: однострочное текстовое поле, поле для ввода пароля, флажки, переключатели, кнопки (как пользовательские, так и выполняющие стандартные действия), поля имен файлов. Все упомянутые элементы управления отображаются браузером Internet Explorer так, как показано на рис. 9.2.
Рис. 9.2. Стандартные элементы управления
Для обозначения всех этих элементов управления используется один HTML-элемент – INPUT. Элемент задается одиночным тегом <INPUT> и имеет следующие атрибуты:
• type – принимает строку, задающую тип элемента управления (по умолчанию используется строка text, и создается, соответственно, поле для ввода текста), возможные значения и специфика работы соответствующих элементов управления рассмотрены далее;
• name – используется для задания имени элементу управления (строка, которая, помимо идентификации элемента управления, добавляется в данные, отсылаемые серверу);
• value – начальное значение для полей ввода текста и полей для указания имен файлов, также используется как надпись таких элементов управления, как кнопки; необязательно для всех элементов управления, кроме флажков и переключателей;
• checked – булев атрибут, если он установлен, то флажок или переключатель считается (и отображается браузером) установленным (см. рис. 9.1);
• disabled – булев атрибут, установка которого не позволяет пользователю работать с элементом управления;
• readonly – булев атрибут, позволяет запретить изменение состояния элемента управления (работает только для текстовых полей и поля выбора файла, так что для остальных элементов управления лучше использовать атрибут disabled, однако при этом данные деактивированных элементов управления не отправляются серверу);
• size – задает размер элемента управления (единицы измерения и действие специфичны для разных элементов управления);
• maxlenth – задает максимальную длину текста, который может быть введен в текстовые поля (положительное численное значение);
• src – для элемента управления image задает расположение используемого изображения;
• title – описание элемента управления (может отображаться браузерами как всплывающая подсказка);
• align – задает горизонтальное выравнивание элемента управления, работает так же, как и для любого другого HTML-элемента, поддерживающего этот атрибут;
• tabindex – номер элемента управления при навигации при помощи табуляции;
• accesskey – горячая клавиша для элемента управления (для перехода к элементу управления нужно нажать Alt и заданную клавишу).
После того как дано начальное описание элемента INPUT, можно проанализировать текст HTML-документа с формой, показанной на рис. 9.2 (пример 9.1).
<TITLE>Типы элементов управления INPUT</TITLE>
<FORM action="..." method="post" enctype = "multipart/form-data">
Текстовое поле <INPUT type="text" name="type_text"><BR>
Поле для ввода пароля: <INPUT type="password" name="type_password"
alt = "asfdsvdf"><BR>
Флажок: <INPUT type="checkbox" name="type_check" value = "chk1"
checked><BR>
Два переключателя: <INPUT type="radio" name="type_radio" value="1"
checked>
и <INPUT type="radio" name="type_radio" value="2"><BR>
Поле с именами файлов: <INPUT type = "file" name = "type_file"><BR>
<INPUT type = "submit" value = "Отправка данных"><BR>
Щелчок на этом изображении также приведет к отправке данных:
<INPUT type = "image" src = "submit.gif""><BR>
<INPUT type = "reset" value = "Сброс значений полей"><BR>
<INPUT type = "button" value = "Пользовательская кнопка">
</FORM>
В приведенном примере использованы все возможные значения атрибута type, кроме значения hidden. Поскольку использование каждого из значений атрибута type налагает различные ограничения на использование других атрибутов HTML-элемента INPUT, то целесообразно рассмотреть влияние каждого значения подробно. Для краткости особенности использования каждого значения сведены в таблицу (табл. 9.1).
Атрибут size упоминался только для элементов управления, имеющих в своем составе текстовые поля. Это потому, что хотя для остальных элементов управления этот атрибут и должен принимать значения в пикселах и задавать соответствующую ширину этих элементов управления, но трудно найти браузер, который бы это поддерживал.
Многострочное текстовое поле
Теперь рассмотрим, как вставить в форму более продвинутый элемент управления для редактирования текста – многострочное текстовое поле. Этот элемент управления обозначается HTML-элементом TEXTAREA и задается парными тегами <TEXTAREA> и </TEXTAREA>.
Главным отличием этого элемента управления от обычного текстового поля, кроме возможности ввода текста, состоящего из большого количества строк, является то, что начальное значение не задается атрибутом value, а записывается между тегами <TEXTAREA> и </TEXTAREA>.
При отображении в текстовом поле форматирование текста сохраняется точно так же, как при использовании HTML-элемента PRE.
В целом для настройки элемента TEXTAREA используются те же атрибуты, что и для настройки элемента INPUT со значением атрибута type, равным text или password. Однако размер элемента управления задается не атрибутом size, а с помощью следующих атрибутов:
• rows – задает количество строк, которые отображаются без необходимости вертикальной прокрутки;
• cols – задает максимальное количество символов в строке текстового поля, отображаемое без переноса.