Как создать формы html. Создание формы в HTML


26.02.2016


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

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

Форма поиска:

Форма входа на сайт:

Форма обратной связи:

Форма для подачи заказа:

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

Вот с этого момента прошу вашего особого внимания, потому как тема сложна и важная.

HTML форма – это поле, в которое пользователь вводит некую информацию. Но, эта информация должна каким-то образом еще и отправляться. Своего рода, HTML форма – это как мотоцикл без бензина, вроде все есть, но почему-то не едет. Так вот, чтобы форма заработала и отправляла информацию, которую ввел пользователь, нужно создать обработчик форм на языке . Но вы с обработчиком не заморачивайтесь, так как вы сейчас проходите только курс для начинающих. Мы еще разберем тему обработчика для форм в разделе «PHP». Так, что-то я отвлекся от основной темы.

Учимся создавать HTML формы

Любая HTML форма будет состоять из основного тега

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

Форма должна размещаться между тегами .
Для тега

закрывающий тег обязателен .

*атрибуты для тега rm >

NAME – уникальное имя формы. Оно используется тогда, когда на одном сайте несколько форм.
ACTION – этот атрибут указывает путь к обработчику формы. Является обязательным.
METHOD – способ отправки.

  • POST - данные передаются в скрытом виде
  • GET (по умолчанию) - данные передаются в открытом виде через браузерную строку.

Пример, как выглядит тег с перечисленными атрибутами:

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

Элементы формы

Тег input

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

*атрибуты для тега < input >

  • name - имя элемента
  • size - размер поля
  • required – поле обязательное для заполнения
  • autofocus – указатель мышки при загрузке веб-страницы сразу будет на поле
  • maxlength – этим атрибутом можно указать максимальное количество ввода символов в поле. По умолчанию, без атрибута maxlength, в поле можно будет вводить неограниченное количество символов
  • 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 – это имя всего списка. Задается только для тега .
  • Value – задается для каждого пункта списка для тега
  • disabled - блокирует выбор элемента в выпадающем списке. Задается только для тега

Результат:

Не срочная Срочная Курьером

Или вот так:

Результат:

Не срочная Срочная Курьером

Теперь заблокируем из списка «Срочная » атрибутом «disabled »:

Результат:

Не срочная Срочная Курьером

выпадающий список по группам :

Для создания списка группы используется тег

Результат:

Option Textarea
Label Fieldset Legend

для множественного выбора :

В теге

*атрибуты для тега < textarea >

  • name – имя поля
  • cols – ширина поля
  • rows – высота поля
  • placeholder – подсказка для пользователя, которая будет отображаться прямо внутри формы поля.

Результат:

Или вот так:

Результат:

Введите текст

Или вот так:

Результат:

Оформление «Рамка» (fieldset)

Тег fieldset

Тег fieldset – с помощью этого тега можно нарисовать рамку вокруг объекта.
Закрывающий тег обязателен .

Дополнительные теги
Тег legend – указывает на заголовок.
Закрывающий тег обязателен .

Заголовок Текст внутри рамки.

Результат:

Это все, что я хотел рассказать по теме «HTML-формы». Сейчас подведем итог и на практике попробуем создать простую форму, используя уже те знания, которые вы почерпнули из этой статьи.

Вот моя форма:

Форма для резюме работника опытного завода ПАО "КМЗ"



Кем вы хотите устроиться?


Какую зарплату вы хотите получать (в месяц)?
10$ 11$



Результат:

Предыдущая запись
Следующая запись

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

Рассказать о формах в Самоучителе, посвященному HTML, достаточно трудно. Причина очень простая: создать форму HTML гораздо проще, чем ту "точку внешнего мира", в которую HTML форма будет посылать информацию. В качестве такой "точки" в большинстве случаев выступает программа, написанная на Перл или Си.

Программы, обрабатывающие данные, переданные формами, часто называют CGI-скриптами. Сокращение CGI (Common Gateways Interface) означает "общепринятый интерфейс шлюзов". Написание CGI-скриптов в большинстве случаев требует хорошего знания соответствующего языка программирования и возможностей операционной системы Unix.

В настоящее время определенное распространение получил язык PHP/FI, инструкции которого можно встраивать прямо в HTML-документы (документы при этом сохраняются в виде файлов с расширением *.pht или *.php).

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

Как устроена HTML форма

Форма открывается тегом

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

Тег

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

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

Определяет, каким образом (иначе говоря, с помощью какого метода протокола передачи гипертекстов) данные из формы будут переданы обработчику. Допустимые значения: METHOD=POST и METHOD=GET . Если значение атрибута не установлено, по умолчанию предполагается METHOD=GET .

Определяет, каким образом данные из формы HTML будут закодированы для передачи обработчику. Если значение атрибута не установлено, по умолчанию предполагается ENCTYPE=application/x-www-form-urlencoded .

Простейшая HTML форма

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

Встретив такую строчку внутри формы, браузер нарисует на экране кнопку с надписью Submit (читается "сабмит" с ударением на втором слоге, от английского "подавать"), при нажатии на которую все имеющиеся в форме данные будут переданы обработчику, определенному в теге .

Надпись на кнопке можно задать такую, какая нравится, путем введения атрибута VALUE="[Надпись]" (читается "вэлью" с ударением на первом слоге, от английского "значение"), например:

Теперь мы знаем достаточно для того, чтобы написать простейшую HTML форму (пример 11). Она не будет собирать никаких данных, а просто вернет нас к тексту этой главы.

Пример 11

Простейшая форма

Надпись, нанесенную на кнопку, можно при необходимости передать обработчику путем введения в определение кнопки атрибута NAME=[имя] (читается "нэйм", от английского "имя"), например:

При нажатии на такую кнопку обработчик вместе со всеми остальными данными получит и переменную button со значением Поехали! .

В форме может быть несколько кнопок типа submit с различными именами и/или значениями. Обработчик, таким образом, может действовать по-разному в зависимости от того, какую именно кнопку submit нажал пользователь.

Как HTML форма собирает данные

Существуют и другие типы элементов . Каждый элемент должен включать атрибут NAME=[имя] , определяющий имя элемента (и, соответственно, имя переменной, которая будет передана обработчику). Имя должно задаваться только латинскими буквами . Большинство элементов должны включать атрибут VALUE="[значение]" , определяющий значение, которое будет передано обработчику под этим именем. Для элементов и , однако, этот атрибут не обязателен, поскольку значение соответствующей переменной может вводиться пользователем с клавиатуры.

Основные типы элементов :

TYPE=text

Определяет окно для ввода строки текста. Может содержать дополнительные атрибуты SIZE=[число] (ширина окна ввода в символах) и MAXLENGTH=[число] (максимально допустимая длина вводимой строки в символах).

Пример:

Определяет окно шириной 20 символов для ввода текста. По умолчанию в окне находится текст Иван, который пользователь может редактировать. Отредактированный (или неотредактированный) текст передается обработчику в переменной user .

TYPE=password

Определяет окно для ввода пароля. Абсолютно аналогичен типу text , только вместо символов вводимого текста показывает на экране звездочки (*). Пример:

Определяет окно шириной 20 символов для ввода пароля. Максимально допустимая длина пароля - 10 символов. Введенный пароль передается обработчику в переменной pw .

TYPE=radio

Определяет радиокнопку. Может содержать дополнительный атрибут checked (показывает, что кнопка помечена). В группе радиокнопок с одинаковыми именами может быть только одна помеченная радиокнопка.

Пример:

9600 бит/с
14400 бит/с
28800 бит/с

Определяет группу из трех радиокнопок, подписанных 9600 бит/с, 14400 бит/с и 28800 бит/с. Первоначально помечена первая из кнопок. Если пользователь не отметит другую кнопку, обработчику будет передана переменная modem со значением 9600 . Если пользователь отметит другую кнопку, обработчику будет передана переменная modem со значением 14400 или 28800 .

TYPE=checkbox

Определяет квадрат, в котором можно сделать пометку. Может содержать дополнительный атрибут checked (показывает, что квадрат помечен). В отличие от радиокнопок, в группе квадратов с одинаковыми именами может быть несколько помеченных квадратов.

Пример:

Персональные компьютеры
Рабочие станции
Серверы локальных сетей
Серверы Интернет

Определяет группу из четырех квадратов. Первоначально помечены второй и четвертый квадраты. Если пользователь не произведет изменений, обработчику будут переданы две переменные: comp=WS и comp=IS .

TYPE=hidden

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

Пример:

Определяет скрытую переменную version , которая передается обработчику со значением 1.1 .

TYPE=reset

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

Пример:

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

Помимо элементов , формы HTML могут содержать меню

Все атрибуты обязательны. Атрибут NAME определяет имя, под которым содержимое окна будет передано обработчику (в примере - address). Атрибут ROWS устанавливает высоту окна в строках (в примере - 5). Атрибут COLS устанавливает ширину окна в символах (в примере - 50).

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

Важно знать, что русские буквы в окне

Элемент Синтаксис:

Имеет атрибуты:

selected. Задаёт изначально выбранное слово.

value. Задаёт значение выбранного слова для сценария.

Элемент применяется для логической группировки элементов

Элемент Это самый простой элемент, позволяющий создать подобие формы и ввода строки, содержащей текст и генерации запроса.

Пример: Допустим что на текущей странице задан базовый URL при помощи элемента тогда, если пользователь введет в поле ключевые слова для поиска слово1,слово2,слово3, то браузер сформирует и отошлет запрос для поисковой машины сервера в виде: http://www.название.домен/?слово1+слово2+слово3 Если поисковая программа сервера поддерживает стандартный синтаксис запроса с использованием знаков? и +,поиск будет осуществлен.

Элемент

name задает имя элементу.

value задает значение элементу.

type при использовании в качестве кнопки принимает значения: button, submit и reset.

disabled делает недоступным данный элемент

tabindex определяет положение в последовательности перехода клавишей Tab, отключенные поля форм не участвуют в очередности.

accesskey задает клавишу доступа.

Элемент

Элемент

позволяет логически группировать элементы формы. Синтаксис:
имя

Элемент позволяет давать наименования логическим группам элементов формы. Синтаксис: имя

Формы встречаются в интернете почти на каждом сайте. Например, когда Вы вводите логин и пароль на сайте, то данные заполняются через формы и отправляются на сервер. Также примером формы являются различные опросы.

Синтаксис тега

...

Тег

имеет очень важный атрибут action , которому присваивается адрес (URL) скрипта, которому передается полученная информация с формы для обработки. Мы не будем углубляться в подробности того, что происходит после отправки данных, поскольку эти вопросы уже решает не html, а методы GET и POST в PHP.

Пример 1. Форма 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. Теперь советую перейти к следующему уроку.