Многострочный текст. Ввод данных. Поля формы - тег. Атрибуты формы - тег
Формы в HTML - это самая сложная, но с другой стороны, пожалуй самая интересная тема в HTML.
Веб-формы позволяют посетителям сайта внести в специальные поля ту или иную информацию, а разработчику ее получить в удобном для него виде.
Примером формы может служить гостевая книга, анкета, онлайн тест. Формы заполняют при регистрации на сайте, при оформлении заказов в интернет магазине и т.п.
Пользуясь HTML, Вы можете создать каркас формы: текстовые поля, меню, списки, кнопки, флажки и переключатели. То есть те элементы, при помощи которых в форму вносится определенная информация.
Затем данные, внесенные в форму, отправляются на сервер для обработки. Но HTML здесь бессилен - над обработкой формы уже работает программа или скрипт, который к ней привязывается. Такие программы обычно пишут на языке php или javascript.
Атрибуты формы - тег
.Атрибут action является обязательным для любой формы - он указывает адрес к файлу, который обслуживает форму (обрабатывает внесенные в нее данные ).
Атрибут method определяет способ отправки содержимого формы. Существует два метода - GET и POST . Сейчас не имеет смысла вникать в эти параметры, так как тема отправки информации методами GET и POST относится к языкам обработки данных (например, PHP ). Достаточно знать, что именно метод передачи данных POST в большинстве случаях используется в формах.
Атрибут name тега
Сторона света - одно из четырех основных направлений:
7 Чудес света!
Сторона света - одно из четырех основных направлений:
Север Юг Запад Восток
7 Чудес света!
Пирамида Хеопса Висячие сады Семирамиды Статуя Зевса в Олимпии Храм Артемиды в Эфесе Мавзолей в Галикарнасе Колосс Родосский Александрийский маяк
Многострочное текстовое поле - тег
Тег
Атрибут name тега
Атрибут disabled блокирует поле - содержимое поля нельзя изменить и оно недоступно. Атрибут readonly говорит о том, что поле предназначено только для чтения - пользователь не имеет возможность редактировать содержимое, но оно доступно - его можно выделить и, например, скопировать.
Можно задать ширину текстового поля в символах и высоту поля в строках при помощи атрибутов cols и rows соответственно.
Если содержимое поля превысит его размеры - появится бегунок.
Пример использования формы
Теперь давайте посмотрим: как работает форма.
Форма заказа обучающего видеоматериала:
Ваше имя: *
Ваш заказ:
Выберите носитель:
CD
DVD
USB Flash
Ваш E-mail: *
Ваш адрес: *
Не всегда текст, который нужно ввести, помещается в одной строке. Бывает, что он растягивается на несколько строк или даже абзацев. Конечно, можно обойтись текстовой строкой "бесконечной" длины (без указания значения параметра maxlength). Однако выглядит такая строка - без начала, без конца - неизящно, а пользоваться ею очень неудобно.
Поэтому для ввода крупных блоков текста предусмотрен другой элемент формы - поле ввода.
Для создания текстового поля используется дескриптор
Дескриптор
Весь текст выводится, как правило, моноширинным шрифтом ("пишущая машинка").
Основные параметры тега
Параметр |
Описание |
Определение количества столбцов текстового поля |
|
Определение количества рядов текстового поля |
|
Присвоение уникального имени, необходимого для идентификации программой-обработчиком |
|
Позволяет создать элемент, недоступный для редактирования |
|
Способ представления текста, вводимого в окно. Virtual - в окне текст автоматически разбивается на строки, но при передаче эта автоматическая разбивка не сохраняется если вы ввели все одной строкой, то оно так и будет передано. Используется по умолчанию. Off - Если мы хотим, чтобы переход на
новую строку в окне происходил только
когда пользователь нажимает Hard - если мы хотим, чтобы переход на новую строку происходил автоматически и эта разбивка сохранялась при передаче текста на обработку |
Раскрывающиеся списки
Списки часто бывают очень длинными и скучными. И занимают много места. Если форма бумажная - ничего не поделаешь. Тяжко вздыхаем и заправляем в принтер еще один лист. Но если форма электронная и мы не хотим зря занимать место, можно воспользоваться раскрывающимся списком. Что это такое, знает любой, кто имел дело с Windows дольше получаса: строка, в которой что-то написано, а справа - небольшая кнопка со стрелкой. Если щелкнуть на стрелке, вниз "выпадает" список. Щелкаем на одном из его пунктов - и список сворачивается обратно, а в строке появляется выбранный пункт.
Как сделать подобный список на HTML-странице? Сам список создается с помощью дескриптора
<SELECT name= day>
Не помню
< OPTION value = Понедельник > Понедельник
< OPTION value =Вторник>Вторник
< OPTION value =Среда>Среда
< OPTION value =Четверг>Четверг
< OPTION value =Воскресенье>Воскресенье
SELECT >
Однако на этом возможности раскрывающегося списка не исчерпываются. По умолчанию список представляет собой одну строку, которая "раскрывается" при щелчке на кнопке. Но мы можем модифицировать список так, чтобы он принял вид окна, содержащего несколько строк и - при необходимости - полосу прокрутки.
Для этого нам потребуется параметр size дескриптора
Но ведь иногда из списка требуется выбрать не одно, а сразу несколько вариантов. И тогда возможность видеть их все сразу может очень пригодиться. Для того чтобы список позволял выбрать сразу несколько вариантов, используется параметр multiple. Как и checked, этот параметр не имеет значений.
Просто проставляем его - и все. Обратите внимание: в результате программе-обработчику передается несколько значений с одинаковым именем.
Для того чтобы выбрать несколько пунктов
из такого списка, используется стандартный
подход Windows: если эти пункты следуют
подряд, выбираем первый, нажимаем клавишу
При разработке электронной формы рекомендуется придерживаться следующего правила: то, что посетитель страницы видит на экране одновременно, должно представлять собой законченный блок информации. По возможности, разумеется: если вам это не удастся, никто не подаст на вас в суд. Однако мало кому понравится пользоваться прокруткой только для того, чтобы добраться до кнопки отправки. Тому, чтобы форма выглядела эстетично и чтобы ею было удобно пользоваться, очень способствует рациональная комбинация различных списков.
Элемент OPTION имеет следующие атрибуты. Selected (без значений) определяет, какой из пунктов списка должен быть выбран по умолчанию, то есть при загрузке страницы. В списке только один из элементов OPTION может быть помечен таким способом. Атрибут value необходим для обработки данных на стороне сервера. Следует отметить, что тег
Эти два элемента предназначены для создания группы полей в форме. Чтобы понять, как используются эти элементы, рассмотрим небольшой пример.
Имя:
Фамилия: name="familiya"
type="text">
Телефон: name="telefon"
type="text">
Текст подсказки
С помощью элемента FIELDSET несколько элементов объединяются: пользователь видит их заключенными в рамку. Внутри группы элементы формы используются обычным способом.
Элемент LEGEND позволяет создать заголовок
группы. Поскольку этот элемент является
контейнером, в нем можно размещать
другие элементы HTML. Например заголовок
группы можно составить из двух строк,
если использовать тег
.
В этом случае размер шрифта заголовка целесообразно уменьшить.
С помощью атрибута align можно регулировать положение заголовка:
Top - заголовок сверху;
Bottom - заголовок внизу (что не всегда удается реализовать);
Left - заголовок вверху и слева (значение по умолчанию);
Right - заголовок вверху и справа.
Данный элемент формы предназначен для создания области, в которой можно вводить несколько строк текста. В таком текстовом поле допустимо делать переносы строк, они сохраняются при отправке данных на сервер.
Поле для многострочного текста незаменимо для добавления комментариев к статьям, написания сообщений форума, вставки и редактирования постов в блоге и во многих других случаях, когда одной строки текста явно недостаточно.
Синтаксис создания поля следующий.
Между тегов можно поместить любой текст, который будет отображаться внутри поля. Если текста нет, то поле будет изначально пустым.
Допустимые атрибуты перечислены в табл. 1.
Создание поля для многострочного текста показано в примере 1.
Пример 1. Текстовое поле
Введите ваш отзыв:
Результат примера показан на рис. 1.
Рис. 1. Вид текстового поля по умолчанию
Для
В
Пример 2. Текстовое поле с текстом
Отредактируйте ваш отзыв:
Результат данного примера показан на рис. 2. Обратите внимание, что учитываются все пробелы и переносы строк внутри
Рис. 2. Поле с текстом
Как правило, размеры
Последнее обновление: 08.04.2016
Однострочное текстовое поле создается с помощью элемента input , когда его атрибут type имеет значение text:
С помощью ряда дополнительных атрибутов можно настроить текстовое поле:
dirname : устанавливает направление текста
maxlength : максимально допустимое количество символов в текстовом поле
pattern : определяет шаблон, которому должен соответствовать вводимый текст
placeholder : устанавливает текст, который по умолчанию отображается в текстовом поле
readonly : делает текстовом поле доступным только для чтения
required : указывает, что текстовое поле обязательно должно иметь значение
size : устанавливает ширину текстового поля в видимых символах
value : устанавливает значение по умолчанию в текстовом поле
Применим некоторые атрибуты:
В этом примере во втором текстовом поле сразу устанавливаются атрибуты maxlength и size . При этом size - то есть количество символов, которые помещаются в видимое пространство поля больше, чем допустимое количество символов. Однако все равно ввести символов больше, чем maxlength, мы не сможем.
В данном случае также важно различать атрибуты value и placeholder , хотя оба устанавливают видимый текст в поле. Однако placeholder устанавливает своего рода подсказку или приглашение к вводу, поэтому он обычно отмечается серым цветом. В то время как значение value представляет введенный в поле текст по умолчанию:
Атрибуты readonly и disabled делают текстовое поле недоступным, однако сопровождаются разным визуальным эффектом. В случае с disabled текстовое поле затеняется:
Среди атрибутов текстового поля также следует отметить такой атрибут как list . Он содержит ссылку на элемент datalist , который определяет набор значений, появляющихся в виде подсказки при вводе в текстовое поле. Например:
Атрибут list текстового поля указывает на id элемента datalist. Сам элемент datalist с помощью вложенных элементов option определяет элементы списка. И при вводе в текстовое поле этот список отображается в виде подсказки.
Поле поиска
Для создания полей поиска предназначен элемент input с атрибутом type="search" . Формально он представляет собой простое текстовое поле:
Поле ввода пароля
Для ввода пароля используется элемент input с атрибутом type="password" . Его отличительной чертой является то, что вводимые символы маскируются точками:
Многострочное поле ввода текста позволяет отправлять не одну строку, а сразу несколько. По умолчанию тег создает пустое поле шириной в 20 символов и состоящее из двух строк.
Многострочное поле ввода текста начинается с парных тегов . Тэг name задает имя многострочного поля. Также можно указать ширину поля(cols ) и число строк(rows ). При необходимости можно указать атрибут readonly, который запрещает редактировать, удалять и изменять текст, т.е. текст будет предназначен только для чтения. Если необходимо чтобы текст был изначально отображен в многострочном поле ввода, то его необходимо поместить между тэгами .
Скрытое текстовое поле
Позволяет передавать сценарию какую то служебную информацию, не отображая её на странице.
Скрытое поле начинается с тега , атрибуты которого являются name , type и value . Атрибут name задает имя поля, type определяет тип поля, а атрибут value задает значение поля.
Кнопка отправки формы (submit)
Служит для отправки формы сценарию.
При создании кнопки для отправки формы необходимо указать 2 атрибута: type=“submit” и value=”Текст кнопки” . Атрибут name необходим если кнопка не одна, а несколько и все они созданы для разных операций, например кнопки "Сохранить", "Удалить", "Редактировать" и т.д. После нажатия на кнопку сценарию передается строка имя=текст кнопки .
Кнопка для загрузки файлов (browse)
Служит для реализации загрузки файлов на сервер. Объект browse начитается с парных тегов
Загрузить файл:
Рамка (fieldset)
Объект fieldset позволяет вам нарисовать рамку вокруг объектов. Имеет закрывающий тэг . Заголовок указывается в тэгах . Основное назначение объекта – задавание различных стилей оформления.
Обработка форм
Все данные, которые вы хотите получить из HTML-формы в PHP сценарий обрабатываются с помощью суперглобальных массивов $_POST или $_GET , в зависимости от указанного в атрибуте method метода передачи данных.
Задача:
Вам необходимо получить данные из текстового поля и многострочного поля ввода и передать их сценарию.
Решение:
Необходимо создать HTML форму и PHP – сценарий для обработки формы.
Обсуждение:
Создадим два файла: form.html и action.php . В файле form.html будет содержаться html-форма с текстовым полем mytext и текстовой областью msg :
В этой html-форме нас интересует 3 атрибута: action который указывает путь к обработчику формы, имя текстового поля (mytext ) и имя многострочного поля вода (msg ). Также в форме присутствует кнопка, при нажатии на которую происходит передача данных.
После того как html-форма готова нам необходимо создать обработчик формы action.php :
$text = $_POST["mytext"];
$msg = $_POST["mytext"];
echo $text;
echo "";
echo $msg;
?>
После того как мы введем любые значение в текстовые поля и нажмем на кнопку "Отправить данные
" html-форма отправить значения сценарию action.php
.
После этого в переменных $text
и $msg
будут содержаться значения текстового поля и многострочного поля ввода соответственно, значения которых взяты из суперглобальных переменных $_POST
.
Если вы хотите, чтобы в многострочном текстовом поле соблюдалось html-форматирование, то используйте функцию nl2br():
$text = nl2br($_POST["mytext"]);
?>
Задача:
Пусть необходимо создать выпадающий список с годами с 2000 по 2050.
Решение:
Необходимо создать HTML форму c элементом SELECT и PHP – сценарий для обработки формы.
Обсуждение:
Для начала создадим два файла: form.html и action.php . В файле form.html будет содержаться html-форма с выпадающим списком. Причем значения в списке можно указать двумя способами:
I. Ввод данных вручную:
II. Ввод данных через цикл:
Как видно, второй пример с циклом, более компактный. Думаю, не стоит приводить скрипт обработчика данной формы, потому что он обрабатывается точно так же как текстовое поле, т.е. значения списка можно извлечь из суперглобального массива $_POST .
Описание:
Создадим HTML-форму для отправки файла на сервер.
В данной html-форме присутствует элемент browse , который открывает диалоговое окно для выбора файла для загрузки на сервер. При нажатии на кнопку "Передать файл" , файл передается сценарию-обработчику.
Затем необходимо написать сценарий обработчик action.php . Перед написание обработчика необходимо определиться в какой каталог мы будет копировать файл:
if(isset($_FILES["myfile"])) // Если файл существует
{
$catalog = "../image/"; // Наш каталог
if (is_dir($catalog)) // Если такой каталог есть
{
$myfile = $_FILES["myfile"]["tmp_name"]; // Времменый файл
$myfile_name = $_FILES["myfile"]["name"]; // Имя файла
if(!copy($myfile, $catalog)) echo "Ошибка при копировании файла ".$myfile_name // Если неудалось скопировать файл
}
else mkdir("../image/"); // Если такого каталога нет, то мы его создадим
}
?>
Замечание
Если вы доверяете пользователям закачивать на ваш сервер любые файлы, нужно быть предельно осторожным. Злоумышленники могут внедрить «нехороший» код в картинку или файл и отправить на сервер. В таких случаях нужно жестоко контролировать загрузку файлов.
Данный пример демонстрирует создание каталога и копирование файла в этот каталог на сервер.
Также хотел бы продемонстрировать пример с элементом checkbox . Этот элемент немного отличается от других элементов тем, что если не один из элементов checkbox ’a не выбран, то суперглобальная переменная $_POST вернет пустое значение:
Синий
Черный
Белый
if (!empty($_POST["mycolor"])) echo $_POST["mycolor"]; // Если выбран хоть 1 элемент
else echo "Выберите значение";
?>