Html form одним кодом

Формы и поля в HTML. Все о HTML формах

В HTML для создания форм используются теги группы form. К ним относятся:

Каждому из этих тегов посвящена отдельная страница в нашем справочнике. Перейти на нее вы можете, нажав по названию тега.

На этой странице описана практика создания и работы с HTML формами с примером исходного кода и описанием на русском языке.

Создание формы в HTML

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

Элементы формы (другое название — поля) формируются с помощью тегов группы form. Основные типы элементов описаны ниже на этой странице. Подробное описание всех типов полей форм находится на страницах тегов соответствующих элементов.

Для примера создадим форму обратной связи. Стандартная форма обратной связи HTML содержит следующие элементы: список выбора тематики, текстовые поля для ввода имени, контакта (например, email) и текстовую область для ввода сообщения.

Пример HTML формы обратной связи

HTML код формы обратной связи

Обратная связь

Тема обращения




Ваше имя
Ваш email
Сообщение

Рассмотрим подробно код формы.

Существует 2 метода передачи данных формы на сервер: GET и POST. Используя метод GET, данные будут переданы в виде пар «имя-значение» в URL адресе обработчика. В случае использования метода POST данные передаются скрыто. Их можно увидеть только с помощью специальных инструментов, открыв HTTP запрос. Подробное описание методов GET и POST и о том, когда нужно использовать каждый из методов читайте в статье: Методы GET и POST: использование и отличия.

Атрибут action содержит URL обработчика формы — по этому адресу будет отправлена форма после наступления события submit (submit — событие отправки формы).

Каждый элемент cодержит атрибут name . При отправке формы, значения введенные пользователем будут переданы в переменных с именами указанными в этом атрибуте. Атрибут type определяет тип элемента . Атрибут required делает элемент обязательными для заполнения. Форма не будет отправлена, пока пользователь не заполнит все обязательные элементы.

Стилевое оформление формы

Для оформления формы обратной связи, приведенной выше, были использованы несколько стилей CSS. Оформление не влияет на работу формы, однако, если вы хотите чтобы ваша форма выглядела также как форма из примера, воспользуйтесь CSS правилами, приведенными ниже.

Код CSS для базового оформления HTML формы обратной связи из примера выше:

 
.guruweba_example_form width: 290px;
>
.guruweba_example_caption font-size: 24px;
text-align: center;
>
.guruweba_example_form .guruweba_example_infofield margin-top: 10px;
font-weight: bold;
>
.guruweba_example_form select, .guruweba_example_form input, .guruweba_example_form textarea width: 100%;
margin: 5px 0;
padding: 5px 15px;
>

Элементы (поля) формы html. Основные типы полей

В таблице ниже представлены основные типы элементов формы (полей). Подробную информацию о каждом элементе вы можете просмотреть на отдельной странице тега.

Читайте также:  background-position

По умолчанию текстовое поле может принимать любые текстовые значение. Дополнительные ограничения могут быть установлены в теге (атрибут pattern), либо с помощью JavaScript.

Браузеры обычно отображают возле поля календарь, с помощью которого можно заполнить поле.

Существует несколько типов полей, содержащих данные о дате и времени:

  • date — дата (число, месяц, год);
  • datetime-local — дата и время (число, месяц, год, часы, минуты);
  • month — месяц конкретного года (например: январь, 2004г);
  • week — неделя конкретного года (например: неделя 32, 2001г).

В поле типа password введенное значение будет заменено символьной маской.

В поля из этой группы можно вводить только подходящее к типу поля содержимое.

Поля с указанным типом содержимого:

  • email — поле для ввода адреса электронной почты;
  • number — поле для ввода чисел;
  • password — поле для ввода пароля;
  • search — поле для ввода поискового запроса;
  • tel — поле для ввода номера телефона;
  • url — поле для ввода URL адреса.

Текстовая область может принимать в виде значения многострочный текст.

Чек-бокс представляет собой поле, в котором можно сделать отметку.

Элемент «переключатель» позволяет выбрать один из доступных вариантов.

При клике на список пользователю откроются доступные для выбора варианты.

Пользователь может выбрать сразу несколько вариантов из этого списка.

С помощью этого элемента пользователь может прикрепить к форме файл.

Для создания кликабельной кнопки можно использовать тег либо тег .

Отличие в возможности формировать название кнопки, сделанной тегом , с помощью HTML тегов.

Типы кнопок (определяются атрибутом type):

  • button — простая кнопка. Действие, которое будет выполнено при нажатии кнопки, определяется через JavaScript;
  • submit — кнопка отправки формы;
  • reset — кнопка очистки полей формы.

Обработка HTML формы на сервере

После отправки формы данные передаются на сервер в виде параметров запроса.

Дальнейшая обработка формы осуществляется с помощью программного кода обработчика, указанного в атрибуте action формы.

Для создания обработчика понадобится один из доступных языков программирования. Распространенным вариантом является использование PHP обработчиков.

В случае использования PHP обработчика данные формы будут доступны в суперглобальных массивах $_GET и $_POST . Например, данные поля с именем «message», отправленные методом POST, будут доступны как $_POST[‘message’] .

Работа с формами на сервере — это отдельная обширная тема. Об обработке HTML форм на сервере читайте в справочнике по выбранному языку программирования.

Ниже представлен простейший PHP обработчик для формы обратной связи, приведенной выше. Данный обработчик отправляет данные формы на указанный email.

Читайте также:  Точка входа в javascript

Этот код необходимо разместить на сервере в корневом каталоге сайта в файле feedback.php (в файле, указанном как обработчик формы).

Код простого PHP обработчика формы обратной связи

 // Простейший обработчик формы обратной связи by GuruWeba 
// Разместите этот код в файле, который указан как обработчик формы
// Замените адреса email в переменных $to и $from ниже
// Внимание! Данный обработчик не содержит защиты от злоумышленников

if (isset($_POST['submit_btn'])) // Email на который будет отправлено письмо
$to = "example@mail.ru";
// Email от имени которого будет отправлено письмо.
// Введите email вашего сайта, либо, в крайнем случае,
// продублируйте email из $to (может не работать)
$from = "example@mail.ru";
$subject = "Новая заявка на сайте"; // Тема присылаемого письма
$message = "На сайте была заполнена форма обратной связи"."\r\n"
// Если вы изменяли поля формы, внесите изменения ниже
."Тема: ".$_POST['theme']."\r\n"
."Ваше имя: ".$_POST['name']."\r\n"
."Ваш email: ".$_POST['email']."\r\n"
."Сообщение: ".$_POST['message']."\r\n";
$headers = "From: ".$from."\r\nContent-type: text/html; charset=utf-8\r\n";
mail($to, $subject, $message, $headers);
>
?>

Источник

Шаблон HTML-формы

Не бывает единого шаблона формы — под каждую задачу нужно составлять что-то своё. Например, форма для отправки сообщений будет отличаться от формы для ввода данных банковской карточки. А ещё важен макет — где-то дизайнер задумал добавить одно текстовое поле с кнопкой, а где-то десяток переключателей. Поэтому мы сначала покажем общий шаблон формы, а затем разберём, из каких тегов он состоит — так вы сможете изменить наш пример под свои цели.

Шаблон HTML-формы

Из чего состоит форма

и

— контейнер формы, в нём содержатся все поля и кнопка для отправки данных. Тегу добавляется два атрибута: action и post . В первом указывается URL-адрес, на который будет отправлена форма, а второй задаёт метод отправки:

  • post — посылает данные в теле HTTP-запроса. Его используют, когда нужно отправить много данных и ссылка на результат их обработки не нужна. Например, при редактировании личного профиля.
  • get — метод по умолчанию. Он посылает данные формы в строке запроса, то есть они видны в адресной строке браузера. Метод применяется, например, в поисковых формах.

Тег группирует поля формы. Он часто используется с — тегом, который задаёт подписи для каждой группы. Мы использовали этот тег, чтобы разделить поля формы на три части: «Персональная информация», «Контакты» и «Обратная связь».

Заголовок или подпись для полей ввода. Он связывается с элементами двумя способами.

При помощи атрибута for со значением, аналогичным id элемента:

Элемент заключается между открывающим и закрывающим тегами :

  

Создаёт раскрывающийся список:

  

Для добавления элементов списка используется тег .

Атрибуты тега :

  • autocomplete — включено ли автозаполнение поля;
  • disabled — в списке нельзя ничего выбрать;
  • form — связывает с формой, если он не вложен в тег ;
  • multiple — создаёт «мультиселект», то есть список, в котором можно выбрать несколько значений;
  • name — имя элемента, используется для отправки формы;
  • required — один из пунктов обязательно должен быть выбран;
  • size — размер элемента.
Читайте также:  Python замена всех вхождений

Добавляет поле для ввода сообщения — пользователь может оставить в нём вопрос, комментарий для техподдержки или что-то ещё.

У есть особенность: пользователи могут прямо в браузере растягивать текстовое поле по ширине и высоте, ломая вёрстку и нарушая замыслы дизайнера. Чтобы заблокировать такое поведение, используйте CSS-свойство resize: none .

Основные атрибуты textarea:

  • name — имя поля;
  • id — связывает поле с ;
  • maxlength и minlength — задают максимальную или минимальную длину текста;
  • required — указывает, что поле обязательно для заполнения;
  • placeholder — выводит короткую подсказку для пользователей — что нужно вводить;
  • disabled — блокирует поле ввода;
  • readonly — делает поле доступным только для чтения, ввод запрещён.

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

Чтобы пользователи вводили данные в правильном формате, тегу нужно задавать атрибут type с подходящим значением:

  • text — можно вводить только текст;
  • number — ввод только цифр;
  • tel — для телефонных номеров;
  • email — ввод электронной почты;
  • submit — инпут превращается в кнопку для отправки данных на сервер;
  • password — поле для ввода паролей;
  • date — для ввода даты;
  • checkbox — инпут превращается в чекбокс;
  • radio — создаёт радиокнопки.

У атрибута более 20 значений, полный список — на сайте MDN.

Основные атрибуты тега :

  • id — связывает input с ;
  • name — имя поля;
  • maxlength или minlength — максимальная или минимальная длина текста;
  • max или min — максимальное или минимальное значение числа и даты;
  • required — поле обязательно для заполнения;
  • placeholder — в поле ввода отображается подсказка — что нужно вводить;
  • disabled — блокирует input ;
  • autocomplete — автозаполнение;
  • checked — для чекбоксов и радиокнопок, делает поле выбранным;
  • pattern — задаёт паттерн для ввода данных, часто используется в типах tel и email ;
  • value — значение элемента;
  • enctype — указывает, в каком виде пересылать данные на сервер.

Создаёт кнопку для отправки формы:

В старых проектах всё ещё встречаются кнопки, сделанные с помощью . Но у такого способа есть ограничения — например, в можно добавить изображение или псевдоэлемент, а в нет.

Что выбрать

— если нужно поле для ввода сообщения.

— для раскрывающихся списков.

— когда нужны чекбоксы, радиокнопки, поля для загрузки файлов и ввода данных.

— для кнопки отправки формы.

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Источник

Оцените статью