Форма в HTML — раздел документа, позволяющий пользователю вводить информацию для последующей обработки системой. Синтаксически форма в HTML задаётся с помощью элемента <form> и в дополнение к разметке обычных элементов содержит разметку для элементов управления.
Формы предназначены для пересылки данных от пользователя к Web – серверу .
Как обрабатываются данные форм на стороне Web – сервера рассмотрим при изучении языка PHP .
Рассмотрим пример создания формы :
Создание формы для регистрации сайта
<!doctype html><htmllang="ru">
<head>
<metacharset="utf-8">
<metaname="viewport"content="width=device-width, initial-scale=1">
<title>Создание формы для регистрации сайта</title>
<styletype="text/css">
@media screen and (max-width: 767px) {
body {
max-width: 767px;
height: auto;
font-size: 1.2em;
}
}
h1 {
color: blue;
}
</style>
</head>
<body>
<h1>Создание формы для регистрации сайта</h1>
<formaction="file.php"method="POST"enctype="multipart/form-data">
<div>
Логин:<br>
<inputtype="text"name="login"><br>
Пароль:<br>
<inputtype="password"name="passw"value="Пароль"><br>
URL-адрес сайта:<br>
<inputtype="text"name="url"value="http://"size="20"><br>
Название сайта:<br>
<inputtype="text"name="name_site"size="20"><br>
Описание сайта:<br>
<textareaname="descr"rows="10"cols="15"></textarea><br>
Тема сайта:<br>
<selectname="theme">
<optionvalue="0"selected>Тема не выбрана</option>
<optionvalue="1">Тема1</option>
<optionvalue="2">Тема2</option>
<optionvalue="3">Тема3</option>
</select><br>
Баннер 88*31:<br>
<inputtype="file"name="banner"size="20"><br><br>
<inputtype="reset"value="Очистить">
<inputtype="submit"value="Отправить">
</div>
</form >
</body>
</html>
Форма добавляется в HTML – документ при помощи парного тега <form> . Внутри тегов <form> и </form> могут располагаться теги <input> , <textarea> и <select> .
Атрибуты тега <form>
action – Задает URL – адрес программы обработки формы .
<form action="file.php">
<form action="http://www.mysite.ru/file.php">
method – Определяет , как будут пересылаться данные из формы Web – серверу , имеет два значения – GET и POST :
GET – Данные формы пересылаются путем их добавления к URL – адресу после знака (?) в формате .
Метод GET применяется . Когда объем персональных данных невелик , так как существует придел длины URL – адреса . Длина не может превышать 256 символов .
POST - предназначен для пересылки данных большого объема , файлов и конфиденциальной информации ( например , паролей ):
multipart/form-data - указывает при пересылке Web – серверу файлов :
name – задает имя формы :
<form action="file.php"name="form1">
target – указывает , куда будет помещен документ , являющийся результатом обработки данных формы Web – сервером . Атрибут может содержать имя фрейма или одно из зарезервированных значений - _blank , _self или _parent :
autocomplete – Этот атрибут помогает заполнять поля форм текстом, который был введён в них ранее.
Имеет два значения :
on – Включает автозаполнение текста.
Off – Отключает автозаполнение. Это значение обычно используется для отмены сохранения в браузере важных данных (паролей, номеров банковских карт), а также редко вводимых или уникальных данных (капча).
Тег <input>
Тег <input> позволяет вставить в форму элементы управления , например , текстовое поле , кнопку или флажок . Этот тег имеет следующие атрибуты :
type – задает тип элемента . В зависимости от значений этого поля создаются следующие элементы формы :
Значение атрибута type
text – текстовое поле ввода :
<inputtype="text">
password – текстовое поле для ввода пароля , в котором все вводимые символы заменяются звездочками :
<inputtype="password">
file – поле ввода имени файла с кнопкой Обзор . Позволяет отправить файл на Web – сервер :
<inputtype="file">
checkbox – поле для установки флажка , который можно установить или сбросить :
<inputtype="checkbox">
radio - элемент - переключатель ( иногда их называют радио кнопками ) :
<inputtype="radio">
reset – кнопка , при нажатии которой происходит очистка данных , введенных в форму :
<inputtype="reset"value="Очистить">
submit – кнопка , при нажатии который происходит отправка данных , введенных в форму :
hidden – скрытый элемент , значение которого отправляется вместе со всеми данными формы . Элемент не показывается пользователю , но позволяет хранить , например , данные из предыдущий формы (если пользователь последовательно заполняет несколько форм ) или уникальное имя пользователя :
<inputtype="hidden"name="user_id"value="1">
name – задает имя элемента управления . Имя должно обязательно указывается латинскими буквами (например , field ) или комбинаций латинских букв и цифр ( например , field1) . Имя элемента не должно начинаться с цифры :
<inputtype="text"name="field1">
disabled - запрещает доступ к элементу формы . При наличии атрибута элемент отображается серым цветом :
<inputtype="text"name="field2"disabled>
readonly – текстовое поле не может изменяться пользователем.
<input type="text" value="Значение по умолчанию">
Текстовое поле и поле ввода пароля
Для текстового поля и поля ввода пароля применяются следующие атрибуты :
value – Задает текст поля по умолчанию :
<inputtype="text"name="field1"value="http://">
maxlength – указывает максимальное количество символов , которое может быть введено в поле :
readonly - указывает , что поле доступно только для чтения . При наличии атрибута значений поля изменить нельзя :
<inputtype="text"name="field1"readonly>
minlength – Задаёт минимальное число символов, которое может быть введено пользователем в текстовом поле. Если число символов меньше указанного значения, то браузер выдаёт сообщение об ошибке и не отправляет форму.
<inputtype="text"name="field1"minlength="3">
Кнопки Сброс , Отправить
Для кнопок используется один атрибут :
value – задает текст , отображаемый на кнопке :
<inputtype="submit"value="Отправить">
Скрытое поле hidden
Для скрытого поля указывается один атрибут type:
<inputtype="hidden"name="hidden1"value="1">
Поле для установки флажка
Для полей — флажков используются следующие атрибуты :
value – задает значение , которое будет передано Web – серверу , если флажок отмечен . Если флажок снят , значение не передается . Если атрибут не задан , используется значение по умолчанию — on :
Элементы checkbox можно объединить в группу . Для этого необходимо установить одинаковые значение атрибут name . Чтобы получить все значения на сервере , после названия поля следует указать квадратные скобки ( тот признак массива в языке PHP ) :
Элемент-переключатель может существовать только в составе группы подобных элементов , из которых может быть выбран только один . Для объедения переключателей в группу необходимо установить одинаковые значение атрибута name и разное значение атрибута value .
size – определяет число одновременно видимых элементов списка :
<selectname="select1"size="3">
По умолчанию size имеет значение 1 :
multiple – указывается , что из списка можно выбрать сразу несколько элементов одновременно . Чтобы получить все значения на сервере , после названия списка следует указать квадратные скобки ( это признак массива в языке PHP ) :
<selectname="select[]"size="3"multiple>
Внутри тегов< select> и </select> располагаются теги <option> , с помощью которых описывается каждый элемент списка .
Тег <option> имеет следующие атрибуты :
value – задает значения , которое будет передано Web – серверу , если пункт списка выбран . Если атрибут не задан , посылается текст этого пункта :
С помощью тега <label> можно указывать пояснительную надпись для элемента формы . Тег имеет два атрибута :
for – Позволяет указывать идентификатор элемента , к которому привязана надпись . Точно такой же идентификатор должен быть указан в атрибуте id элемента формы :
Атрибут id может иметь практически все теги . В большинстве случаев он предназначен для доступа к элементу из скрипа . Если элемент формы разместить внутри тега <label> , то надпись будет связана с элементом и без указания атрибута for :
<!doctype html><htmllang="ru">
<head>
<metacharset="utf-8">
<metaname="viewport"content="width=device-width, initial-scale=1">
<title>Форма регистрации</title>
<styletype="text/css">
@media screen and (max-width: 767px) {
body {
max-width: 767px;
height: auto;
}
}
body { /* Стиль для всего документа */
font-size: 10pt; /* Размер шрифта */
font-family: "Verdana", sans-serif; /* Название шрифта */
}
h1 {
color: blue; /* Цвет шрифта */
}
label { /* Стиль для всех элементов label */display: inline-block; /* Тип блока */width: 150px; /* Ширина */vertical-align: top; /* Вертикальное выравнивание */
}
select { /* Стиль для всех списков */width: 250px; /* Ширина */border: 1px solid black; /* Определение стиля для границы */
}
input.txt { /* Стиль для элемента input, имеющего класс txt */width: 250px; /* Ширина */
border: 1px solid black; /* Определение стиля для границы */
}
textarea{ /* Стиль для многострочного текстового поля */width: 250px; /* Ширина */height: 100px; /* Высота */ border: 1px solid black; /* Определение стиля для границы */
}
form div { /* Стиль для всех div, расположенных внутри form */margin-bottom: 20px; /* Отступ блока снизу */
}
</style>
</head>
<body>
<h1>Форма регистрации</h1>
<formaction="reg.php"method="POST"enctype="multipart/form-data">
<div><labelfor="login">Логин*:</label>
<inputtype="text"name="login"id="login"class="txt"required>
</div>
<div><labelfor="passw1">Пароль*:</label>
<inputtype="password"name="passw1"id="passw1"class="txt"required>
</div>
<div><labelfor="passw2">Повторите пароль*:</label>
<inputtype="password" name="passw2"id="passw2"class="txt"required>
</div>
<div><labelfor="sex1">Пол*:</label>
Муж. <inputtype="radio"name="sex"id="sex1"value="1">
Жен. <inputtype="radio"name="sex"id="sex2"value="2"></div>
<div><labelfor="education">Образование*:</label>
<selectid="education" name="education"required>
<optionvalue=""disabled> </option>
<optionvalue="1">Среднее</option>
<optionvalue="2">Высшее</option>
</select></div>
<div><labelfor="comment">Комментарий:</label>
<textareaid="comment"name="comment"cols="15"rows="10"></textarea>
</div>
<div><labelfor="userfile">Ваше фото:</label>
<inputtype="file"name="userfile"id="userfile"></div>
<div><labelfor="rule">С правилами согласен*:</label>
<inputtype="checkbox"name="rule"id="rule"value="yes"required>
</div>
<div>
<inputtype="submit"value="Отправить"style="margin-left: 150px;">
</div>
</form >
</body>
</html>