Как сделать форму заполнения в html. Учимся создавать HTML формы. Многострочное текстовое поле - тег
Рассматривая основыные теги HTML мы не можем не затронуть такой важный элемент как формы. Часто на web-страницах необходима обратная связь. Например, заполнение анкеты на сайте, регистрация, авторизация, комментарии и т.д. Во всех этих случаях пользователь заполняет специальные области (поля формы) на странице, после чего происходит отправка данных на сервер. Для создания обратной связи используются формы. Форма это фрагмент HTML документа предназначенный для ввода информации пользователем.
На рисунке представлена форма регистрации студента на сайте образовательного учреждения.
Для создания формы используется контейнер
с атрибутом action, в котором указывается страница на сервере, которая будет обрабатывать данные переданные формой.
Структура простейшей формы:
элементы форм…
В каждой форме необходимо также наличие кнопки submit, предназначенной для отправки данных после заполнения формы.
Структура кнопки:
Итак, для записи практически всех элементов форм используется тэг с атрибутом type. Для создания кнопки, которая сбрасывать все данные с форм используется следующая структура:
Для создания текстового поля (textfield) существует параметр text. При этом используются параметры: name – имя поля; size – для поля в симолах; maxlength – максимально возможное количество символов в поле; value – информация, отображаемая в форме по умолчанию
Пример записи формы с двумя текстовыми полями:
Результат работы формы представлен на рисунке.
В случае, если в текстовое поле необходимо ввести большое количество информации, например, комментарий используется форма текстовой области (textarea),которая создается при помощи тэга
К вышеуказанному коду добавим поле текстовой области:
Комментарий:
Результат работы кода с текстовой областью представлен на рисунке.
Следующим элементом форм являются списки, позволяющие сделать выбор из представленного множества значений. Создать форму списка позволяют тэги
Структура записи списка:
Для того, чтобы элемент был выделен при загрузке страницы необходимо в тэге
Аналогичным способом выбора являются элементы формы флажок (checkbox) и радиокнопка (radiobutton). Отличие этих элементов состоит в том, что флажок позволяет сделать множественный выбор, а радиокнопка только единичный.
Структура записи флажка и радиокнопки:
текст
Радиокнопка:
текст
В указанных в структуре элементах для выделения флажка и радиокнопки по умолчанию используется атрибут checked. Пример использования флажка, радиокнопки, а также HTML код представлены на рисунке.
Еще одним элементом формы является кнопка, задаваемая при помощи атрибута typeтэга со значением button:
В указанном коде для создания кнопки присутствует параметр onclick, в котором как правило задается код на языке программирования для выполнения того или иного действия при нажатии на эту кнопку:
Для вывода сообщения в специальном окне используется команда на языке jаvascript – aler. Результат работы примера представлен на рисунке.
Для вставки изображения в кнопку используется код, представленный в следующем примере:
При регистрации и входе на сайты используется поле со скрытым тестом, отображаемым в виде звездочек. Это элемент формы password:
Часто регистрация на сайте разбивается на несколько страниц и каждая последующая должна содержать в себе информацию из предыдущей. Для того чтобы скрыть передаваемую информацию используется элемент формы hidden:
Элемент формы hiddenбудет невидим в окне браузера.
Для загрузки файлов на сервер в формах имеется элемент file. Пример кода для загрузки файлов на сервер представлен ниже:
Итак, в этой теме были рассмотрены элементы форм для создания различных HTMLстраниц, которые вместе с обработчиками сценария на компьютере или сервере позволяют разрабатывать полноценные web-приложения.
26.02.2016
Всем привет!
Продолжаем изучать основы HTML. В этом уроке мы разберем, что такое
HTML
форма
и как она создается.
Если вы обратили внимание, сегодня ни один веб сайт не обходится без форм. Эти формы могут быть различные, например, форма обратной связи, форма для подачи заказа, форма регистрации и входа на сайт, форма отправки комментариев, отзывов, форма поиска и многие др.
Я думаю сейчас нужно вам показать примеры, как выглядят HTML формы визуально.
○ Форма поиска:
○ Форма входа на сайт:
○ Форма обратной связи:
○ Форма для подачи заказа:
Я думаю, вы уловили саму суть создания HTML форм. Итак, в сегодняшнем уроке я расскажу, как создать простую
HTML
форму
и какие теги можно использовать для создания различных полей формы.
Вот с этого момента прошу вашего особого внимания, потому как тема сложна и важная.
HTML
форма
– это поле, в которое пользователь вводит некую информацию. Но, эта информация должна каким-то образом еще и отправляться. Своего рода, HTML форма – это как мотоцикл без бензина, вроде все есть, но почему-то не едет. Так вот, чтобы форма заработала и отправляла информацию, которую ввел пользователь, нужно создать обработчик форм на языке . Но вы с обработчиком не заморачивайтесь, так как вы сейчас проходите только курс для начинающих. Мы еще разберем тему обработчика для форм в разделе «PHP». Так, что-то я отвлекся от основной темы.
Учимся создавать HTML формы
Любая HTML форма будет состоять из основного тега
. Внутри тега
вставляются остальные элементы формы, которые будут отображаться на веб странице.
Форма должна размещаться между тегами
.
Для тега
Элементы формы
○ Тег
input
Тег
input
– эта часть элемента поля формы предназначена для ввода небольшого текста, цифр.
Для тега
закрывающий тег не нужен
.
*атрибуты для тега <
input
>
name
- имя элемента
size
- размер поля
required
– поле обязательное для заполнения
autofocus
– указатель мышки при загрузке веб-страницы сразу будет на поле
placeholder
– подсказка для пользователя, которая будет отображаться прямо внутри формы поля (раньше использовали атрибут value).
type
- тип элемента
Пример заполнений:
Тип элемента type
Текстовое поле
○ Текстовое поле «text»
:
Результат:
○ Поле для пароля «password»
:
Результат:
○ Поле для email «email»
:
Результат:
○ Кнопка для выбора файла с компьютера «file»
:
Результат:
○ Поле для ввода телефона «tel»
:
Результат:
○ Поле поиска «search»
:
Результат:
○ Поле выбора цвета «color»
:
Результат:
○ Поле для ввода и выбора цифр «number»
:
min
– минимальное значение
max
– максимальное значение
step
– шаг.
Результат:
○ Поле для выбора даты «date»
:
Результат:
○ Поле для выбора даты и местного времени в формате (05.05.2015 00:00)
:
Результат:
○ Выводить выпадающий календарь.
Поле для выбора года и месяца в формате (Июль 2015 г.).:
Результат:
○ Поле для выбора времени «time»
:
Результат:
○ Ползунок «range»
:
Результат:
○ Флажок (checkbox)
:
checked
– этот атрибут указывает, какой флажок должен быть включен по умолчанию
Результат:
○ Радиопереключатель «radio»
:
checked
– этот атрибут указывает, какой радиопереключатель должен быть включен по умолчанию
Результат:
Кнопки
○ Кнопка «button»
:
value
- надпись на кнопке
Результат:
○ Кнопка для отправки данных «submit»
:
value
- надпись на кнопке
Результат:
○ Кнопка сброса «reset»
:
value
- надпись на кнопке
Результат:
○ Кнопка картинкой
:
Результат:
○ Скрытое поле «hidden»
○ Тег select
Тег
select
– это часть элемента формы, предназначен для ввода выпадающего списка.
Для тега
закрывающий тег обязателен
.
Тег
Чтобы создавать пункты выпадающего списка существует тег
закрывающий тег обязателен
.
*атрибуты для тега
Name
– это имя всего списка. Задается только для тега
multiple
– для множественного выбора, только при выборе нужно удерживать клавишу «CTRL». Задается только для тега
Value
– задается для каждого пункта списка для тега
disabled
- блокирует выбор элемента в выпадающем списке. Задается только для тега
Результат:
Не срочная Срочная Курьером
Или вот так:
Результат:
Не срочная Срочная Курьером
Теперь заблокируем из списка «Срочная
» атрибутом «disabled
»:
Результат:
Не срочная Срочная Курьером
○ выпадающий список по группам
:
Для создания списка группы используется тег
Результат:
Option Textarea
Label Fieldset Legend
○ для множественного выбора
:
В теге
Результат:
Option Textarea Label Fieldset Legend
Многострочное текстовое поле
○ Тег textarea
Тег
textarea
– это часть элемента поля формы, предназначен для ввода большого текста, цифр. закрывающий тег обязателен
.
*атрибуты для тега <
textarea
>
name
– имя поля
cols
– ширина поля
rows
– высота поля
placeholder
– подсказка для пользователя, которая будет отображаться прямо внутри формы поля.
Результат:
Или вот так:
Результат:
Введите текст
Или вот так:
Результат:
Оформление «Рамка» (fieldset)
○ Тег fieldset
Тег fieldset
– с помощью этого тега можно нарисовать рамку вокруг объекта. Закрывающий тег обязателен
.
Дополнительные теги
Результат:
Это все, что я хотел рассказать по теме «HTML-формы». Сейчас подведем итог и на практике попробуем создать простую форму, используя уже те знания, которые вы почерпнули из этой статьи.
Вот моя форма:
Результат:
Предыдущая запись Следующая запись
Формы встречаются в интернете почти на каждом сайте. Например, когда Вы вводите логин и пароль на сайте, то данные заполняются через формы и отправляются на сервер. Также примером формы являются различные опросы.
Синтаксис тега
Тег
Это будут кнопки:
Кнопка один
Кнопка два
Кнопка три
А это будет текстовое поле. Например сюда можно вводить логин
А это будет большое текстовое поле. Например сюда можно ввести информацию о себе
После всего перечисленного будет кнопка ОК
После нажатия кнопки ОК, страница просто обновится, т.к. мы
не прописали параметр action
Пояснения к примеру
action=""
- говорит о том, что обработка данных будет происходить на этой же странице.
- атрибут type="radio"
говорит о том, что нужно отобразить текст после этого кода, как кнопку выбора. Атрибут name
и value
в данном теге для нас сейчас играют маленькую роль, т.к. мы не изучаем сейчас php (см. уроки php).
- атрибут type="text"
говорит о том, что это будет текстовое поле. Здесь так же есть два важных атрибута: name
(для php) и value
(значение по умолчанию).
- атрибут type="textarea"
говорит о том, что это будет большое текстовое поле. Разница от предыдущего случая лишь в том, что он позволяет записывать большой объем текста.
- атрибут type="submit"
говорит о том, что это кнопка. В атрибуте value пишется то, что будет написано на кнопке.
Более подробно про все эти элементы можно прочитать в 15 уроке: элементы тега
, где рассмотрены радиокнопки, списки, флажки, текстовые поля, кнопки.
Теперь рассмотрим подробно все атрибуты тега
.
Атрибуты и свойства тега
1. Атрибут accept-charset="Кодировка"
- определяет кодировку, в которой сервер может принимать и обрабатывать данные формы. Может принимать различные значения, например, CP1251, UTF-8 и т.п.
2. Атрибут action="URL"
- адрес скрипта, который обрабатывает передаваемые данные от формы. Если оставить это значение пустым, то данные будут обрабатываться в этом же документе, где расположена форма.
3. Атрибут autocomplete="on/off"
- задает или отключает автозаполнение формы. Может принимать два значения:
on
- включить автозаполнение;
off
- выключить автозаполнение;
4. Атрибут enctype="параметр"
- задает способ кодирования данных. Может принимать следующие значения:
application/x-www-form-urlencoded
- вместо пробелов ставится +, символы вроде русских букв кодируются их шестнадцатеричными значениями
multipart/form-data
- данные не кодируются
text/plain
- пробелы заменяются знаком +, буквы и другие символы не кодируются.
5. Атрибут method="POST/GET"
- задает метод отправки. Может принимать два значения:
GET
- передача данных в адресной строке (есть ограничение по объёму отправки данных)
POST
- посылает на сервер данные в запросе браузера (может отправить большое количество данных, т.к. нету ограничения объёма)
6. Атрибут name="имя"
- задает имя формы. Чаще всего используется в случае наличия множества форм для того, чтобы можно было обратиться к конкретной форме через скрипт.
7. Атрибут novalidate
- отменяет встроенную проверку данных формы на корректность ввода.
8. Атрибут target="параметр"
- имя окна или фрейма, куда обработчик будет загружать возвращаемый результат. Может принимать следующие значения:
_blank
- загружает страницу в новое окно браузера
_self
- загружает страницу в текущее окно
_parent
- загружает страницу во фрейм-родитель
_top
- отменяет все фреймы и загружает страницу в полном окне браузера
Уважаемый читатель, теперь Вы узнали гораздо больше о html теге form. Теперь советую перейти к следующему уроку.
Зачастую на Web – сайтах можно встретить страницы с размещенными на них HTML - формами. Веб-формы – удобный способ получения информации от посетителей вашего сайта. Пример тому – , – которая обеспечивает обратную связь с посетителями и разработчиками сайта. Формы так же удобны и для разработчиков сайта при разработке CMS, которая позволяет поддерживать главное свойство сайта - актуальность. Данная статья посвящена основам создания HTML-форм, их обработке и способам передачи данных из экранных форм в PHP-сценарии.
1) Создание простой формы
Теги
и
задают начало и конец формы. Начинающий форму тег
содержит два атрибута: action
и method
. Атрибут action содержит адрес URL сценария, который должен быть вызван для обработки сценария. Атрибут method
указывает браузеру, какой вид HTTP запроса необходимо использовать для отправки формы; возможны значения POST
и GET
.
Замечание
Главное отличие методов POST и GET заключается в способе передачи информации. В методе GET параметры передаются через адресную строку, т.е. по сути в HTTP-заголовке запроса, в то время как в методе POST параметры передаются через тело HTTP-запроса и никак не отражаются на виде адресной строки.
$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
"Выберите значение"
;
?>
HTML-формы
являются элементами управления, которые применяются для сбора информации от посетителей веб-сайта.
Веб-формы состоят из набора текстовых полей, кнопок, списков и других элементов управления, которые активизируются щелчком мыши. Технически формы передают данные от пользователя удаленному серверу.
Для получения и обработки данных форм используются языки веб-программирования, такие как PHP
, Perl
.
До появления HTML5 веб-формы представляли собой набор нескольких элементов , , завершающихся кнопкой . Для стилизации форм в разных браузерах приходилось прилагать немало усилий. Кроме того, формы требовали применения JavaScript для проверки введенных данных, а также были лишены специфических типов полей ввода для указания повседневной информации типа дат, адресов электронной почты и URL-адресов.
HTML5-формы
решили большинство этих распространенных проблем благодаря наличию новых атрибутов, предоставив возможность изменять внешний вид элементов форм за счет CSS3
.
Рис. 1. Улучшенные веб-формы с помощью HTML5
Создание HTML5-формы
1. Элемент
Основу любой формы составляет элемент
...
. Он не предусматривает ввод данных, так как является контейнером, удерживая вместе все элементы управления формы – поля
. Атрибуты этого элемента содержат информацию, общую для всех полей формы, поэтому в одну форму нужно включать поля, объединенные логически.
Таблица 1. Атрибуты тега
Атрибут
Значение / описание
accept-charset
Значение атрибута представляет собой разделенный пробелами список кодировок символов
, которые будут использоваться для отправки формы, например,
.
action
Обязательный атрибут
, который указывает url обработчика формы на сервере, которому передаются данные. Представляет из себя файл (например, action.php), в котором описано, что нужно делать с данными формы. Если значение атрибута не будет указано, то после перезагрузки страницы элементы формы примут значения по умолчанию.
В случае, если вся работа будет выполняться на стороне клиента сценариями JavaScript, то для атрибута action можно указать значение # .
Также можно сделать так, чтобы заполненная посетителем форма приходила вам на почту. Для этого нужно внести следующую запись:
autocomplete
enctype
Используется для указания MIME
-типа данных, отправляемых вместе с формой, например, enctype="multipart/form-data" . Указывается только в случае method="post" .
application/x-www-form-urlencoded — тип содержимого по умолчанию, указывает на то, что передаваемые данные представляют список URL-кодированных переменных формы. Символы пробела (ASCII 32) будут закодированы как + , а специальный символ, например, такой как! будет закодирован шестнадцатиричной форме как %21 .
multipart/form-data — используется для отправки форм, содержащих файлы, не-ASCII данные и бинарные данные, состоит из нескольких частей, каждая из которых представляет содержимое отдельного элемента формы.
text/plain — указывает на то, что передается обычный (не html) текст.
method
Задает способ передачи данных формы.
Метод get передает данные на сервер через адресную строку браузера. При формировании запроса к серверу все переменные и их значения формируют последовательность вида www.anysite.ru/form.php?var1=1&var2=2 . Имена и значения переменных присоединяются к адресу сервера после знака? и разделяются между собой знаком & . Все специальные символы и буквы, отличные от латинских, кодируются в формате %nn , пробел заменяется на + . Этот метод нужно использовать, если вы не передаете больших объемов информации. Если вместе с формой предполагается отправка какого-либо файла, этот метод не подойдет.
Метод post применяется для пересылки данных больших объемов, а также конфиденциальной информации и паролей. Данные, отправляемые с помощью этого метода, не видны в заголовке URL, так как они содержатся в теле сообщения.
name
Задает имя формы
, которое будет использоваться для доступа к элементам формы через сценарии, например, name="opros" .
novalidate
Отключает проверку в кнопке для отправки формы. Атрибут используется без указания значения
target
Указывает окно, в которое будет направлена информация:
_blank — новое окно
_self — тот же фрейм
_parent — родительский фрейм (если он существует, если нет — то в текущий)
_top — окно верхнего уровня по отношению к данному фрейму. Если вызов происходит не из дочернего фрейма, то в тот же фрейм.
2. Группировка элементов формы
Элемент
предназначен для группировки элементов, связанных друг с другом, разделяя таким образом форму на логические фрагменты.
Каждой группе элементов можно присвоить название с помощью элемента