Как создать форму html
Перейти к содержимому

Как создать форму html

  • автор:

HTML формы

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

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

Основные теги, используемые для создания HTML форм, — это тег , тег , тег , тег и тег .

Необязательный атрибут method указывает на то, каким образом должны отсылаться данные формы. Он может принимать два значения – get (значение по умолчанию) и post. При последнем значении данные во время отсылки скрываются (при значении get данные формы прикрепляются к URL).

Таким образом, элемент формы будет иметь приблизительно следующий вид:

  • type=»text» /> — стандартное текстовое поле. Также здесь может присутствовать атрибут value, который определяет текст по умолчанию, заданный в текстовом поле.
  • type=»password» /> — то же текстовое поле, однако вводимые пользователем символы будут скрыты.
  • type=»checkbox» /> — создает поле выключателей (checkbox) или флажков, которые пользователь может либо включить, либо отключить. Также здесь можно использовать атрибут checked, который используется в формате и который задает начальное состояние флажка «включен».
  • type=»radio» /> — создает поле переключателей, которые очень похожи на флажки, однако в этом случае пользователь может выбрать только один объект в группе переключателей. Здесь также можно использовать атрибут checked, который задается аналогичным образом, как и в случае с флажками.
  • type=»file» /> — создает поле ввода, которое показывает файлы на вашем компьютере подобно тому, как вы открываете или сохраняете документы в большинстве программ. Оно позволяет пользователям загружать файлы на сервер.
  • type=»submit» /> — создает кнопку отправки данных формы программе-обработчику. Можно самому задавать текст, который будет отображаться на кнопке отправки (то же самое можно сделать и с типами button и reset – см.ниже). Это делается при помощи атрибута value, например, .
  • type=»image» /> — создает специальную кнопку отправки, в качестве которой будет использоваться активное изображение. При этом серверу кроме данных формы еще отправляются и координаты (x, y) нажатия мыши на изображение. Также необходимо указывать атрибут src, который играет ту же роль, что и в теге .
  • type=»button» /> — создает кнопку, которая без дополнительного кода ничего не будет делать.
  • type=»reset» /> — создает кнопку, которая при нажатии на нее возвращает все поля формы к значениям по умолчанию.
  • type=»hidden» /> — создает поле, которое не отображается в окне браузера. Оно используется для передачи различной вспомогательной информации, например, имени страницы, на которой находится пользователь, или электронный адрес, куда должна пересылаться форма.

Обратите внимание, что тег закрывает сам себя при помощи конструкции «/>».

  
   

При отправке данных формы посылается выбранный элемент списка.

Аналогично атрибуту checked в флажках и переключателях тег может иметь атрибут selected:

  

Все упомянутые выше теги будут корректно отображаться на веб-странице, однако если попытаться обработать соответствующей программой, то ничего не получится. Это произойдет, потому что всем полям формы необходимо присвоить имена. Имена присваиваются при помощи атрибута name, который необходимо добавить каждому полю формы. Например,

Форма может иметь, например, следующий вид. (Внимание: форма не будет работать до тех пор, пока не будет реализован скрипт «contactus.php», указанный в атрибуте action тега , и который обрабатывает передаваемые данные.)

  

Имя:

Комментарий:

Вы:

Мужчина

Женщина

Ни то ни другое

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

Руководство по HTML-формам

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

Необходимые условия

Перед началом этого модуля вам следует изучить хотя бы Введение в HTML. На данный момент у вас не должно возникнуть сложностей с пониманием Основных руководств и использованием нашего руководства по Стандартным виджетам форм.

Остальные части модуля немного сложнее — легко поместить виджет формы на страницу, но вы не сможете много сделать без использования продвинутых особенностей форм, CSS и JavaScript. Поэтому, перед тем как вы перейдёте к другим частям модуля, мы рекомендуем изучить немного CSS и JavaScript.

**Примечание:**Если компьютер/планшет/другое устройство, на котором вы работаете, не позволяет вам самостоятельно создавать файлы, то приводимые здесь примеры кода можно посмотреть в онлайновых программах для кодирования, например JSBin или Thimble.

Основные руководства

Первая статья в серии даёт вам начальный опыт в создании HTML-форм, включая разработку простой формы, её реализация при помощи элементов HTML, стилизация при помощи CSS и то, как данные отправляются на сервер.

Изучив основы, рассмотрим более подробно элементы, используемые для структурирования и придания смысла различным частям HTML-форм.

Какие виджеты форм доступны?

Рассмотрим подробнее функционал различных виджетов форм; какие варианты доступны для сбора различных типов данных.

Валидация и подтверждение данных форм

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

Одной отправки данных не достаточно — нам нужно убедиться что данные, введённые пользователем в формы, в правильном формате и не испортят наши приложения. Мы также хотим помочь пользователям правильно заполнить формы и не разочароваться при использовании наших приложений. Валидация форм поможет нам в достижении этих целей — эта статья расскажет вам всё, что нужно знать.

Продвинутые руководства

В некоторых случая стандартные виджеты форм не предоставляют того, что вам нужно, например из-за стиля или функциональности. В таких случаях вам придётся создать собственный виджет формы из чистого HTML. В этой статье (с практическим примером) объясняется, как вы это сделаете, а также особенности, на которые необходимо обратить внимание.

В этой статье рассматриваются способы использования формы для сборки HTTP-запроса и отправки его через пользовательский JavaScript вместо стандартного представления формы. А также почему вы захотите это сделать и способы реализации (см. использование объектов FormData).

Статья раскрывает особенности обнаружения и т.д. (см. Кросс-браузерное тестирование для более глубокого понимания)

Руководства по стилизации форм

Вступительная статья по стилизации форм с помощью CSS, включая все необходимые основы.

В этой статье мы рассмотрим продвинутые техники стилизации форм, которые необходимо использовать при работе с некоторыми более сложными для стилизации элементами.

Последняя статья содержит удобный справочник, позволяющий узнать, с какими элементами формы совместимы свойства CSS.

Смотрите также

  • Ссылка на элементы HTML-форм
  • Ссылка на виды HTML-элемента

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 3 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

Формы в HTML

В наше время сложно представить сайт без форм — мы сталкиваемся с ними каждый раз при оформлении заказа пиццы и при регистрации на сайтах. Они позволяют нам отправлять запросы с введенными нами данными на удаленные сервера. И именно о формах мы поговорим в этом уроке.

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

Чтобы создать форму используется тег с двумя атрибутами:

  • Атрибут action. С его помощью указывается адрес, на который отправятся введенные на форме данные
  • Атрибут method. С его помощью указывается HTTP-метод отправки формы (get, post, put, и т.д.). Подробнее о разных методах читайте тут и тут.

Внутри тега form размещаются непосредственно поля для заполнения данных и кнопка для отправки формы.

  • PHP программист От 150000₽
  • PHP/Golang developer До 2500$
  • Стажер \ Джун PHP До 20000₽
  • Senior / Middle PHP Developer | Laravel 180000₽ — 250000₽
  • Разработчик PHP (middle+) 110000₽ — 130000₽

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

type — говорит о том, что это просто текстовое поле;
name — это имя поля, которое отправится в запросе на сервер, а его значением будет то, что мы введем в нем на форме.

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

  • Привет, мир!
  • Развернуть строку
  • Чётные числа
  • Числа Фибоначчи

Давайте создадим свою простейшую форму, которая будет формировать поисковый запрос в Яндекс. У Яндекса для формирования поискового запроса используется query-параметр в адресной строке с именем text, поэтому имя нашего текстового поля такое же. Чтобы отправить поисковый запрос нужно отправить get-запрос на адрес:
https://yandex.ru/search/?text=PHP

Давайте сформируем форму для поиска в Яндексе:

    Форма поиска в Яндексе   

Форма для поиска в Яндексе

Форма будет выглядеть так:

Результат выдачи в Яндексе

Теперь, когда мы нажмём на кнопку, мы попадём на страницу поиска в Яндексе:

Таким образом, мы передали содержимое поля с именем text в параметр text на странице поиска в Яндексе.

Подписи к полям ввода

Чтобы привязать к полю ввода подпись используется тег с атрибутом for, в котором указывается id инпута. Этот id, разумеется, нужно заранее добавить.

Вот как это будет выглядеть на примере.

  

Форма с подписями к полям

Результат в браузере:

Теперь если нажать на текст рядом с полем ввода, то курсор для ввода данных переключится на соответствующее поле

Создаём форму авторизации на HTML

Давайте создадим самую простую форму для авторизации на сайте. Для этого нам необходимы два поля. Первое поле – для логина, второе – для пароля.

 

Форма авторизации

Результат в браузере:

Со вторым полем не все в порядке. Поскольку на текущий момент оно представляет собой просто поле для ввода текста, вводимый пароль отображается на экране монитора. Не секьюрно! К счастью, специально для паролей для инпута есть тип password.

В итоге код нашей формы получится следующим:

 

Полноценная форма авторизации

Результат в браузере:

Вот и получилась наша формочка авторизации на HTML. Изи!

Тег textarea — многострочное поле ввода:

Для создания многострочного поля используется тег . Этот тег является парным, в отличие от . А ещё для управления его шириной и высотой можно управлять с помощью атрибутов cols и rows соответственно.

На примере выглядит вот так:

    Форма поиска в Яндексе    


Результат в браузере:

Чекбокс

Чекбокс создается тегом с атрибутом type=»checkbox». Если чекбокс на форме отмечен, то на бэкенд уйдет переменная с именем инпута, а иначе — нет. Чтобы чекбокс на форме был отмечен по умолчанию, то нужно добавить атрибут checked. Выглядеть это будет вот так:

 
Завтрак
Обед
Ужин

Чекбоксы в действии

Радиобаттон

Радиобаттон создается тегом с атрибутом type=»radio». Он служит для выбора одного варианта из нескольких. Все варианты должны иметь одинаковый атрибут name и разные атрибуты value. Значение атрибута value отмеченного радиобаттона будет отправлено на бэкенд.

 
Выберите цвет футболки:


Радиобаттон

Форма для загрузки файлов

Чтобы создать форму для загрузки файлов, использутеся тег с типом file. При этом самой форме нужно прописать атрибут enctype=»multipart/form-data»:

  

Поле для загрузки файла

А вот так будет выглядеть наше получившееся поле:

На этом с формами всё. За домашку!

Формы и поля в 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. Основные типы полей

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

По умолчанию текстовое поле может принимать любые текстовые значение. Дополнительные ограничения могут быть установлены в теге (атрибут 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.

Этот код необходимо разместить на сервере в корневом каталоге сайта в файле 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);
>
?>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *