Формы предназначены для пересылки данных от пользователя к веб-серверу. О том, как обрабатывать эти данные на стороне сервера, изложено в разделе PHP и MySQL. А пока рассмотрим возможности HTML для создания форм.
Рассмотрим пример, использования формы для регистрации сайта в каталоге ресурсов Интернета.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Использование форм</title>
</head>
<body>
<h2>Пример формы регистрации сайта</h2>
<form action="file.php" method="post" enctype="multipart/form-data">
<table width="470" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="205">Логин:</td>
<td><input name="pole1" type="text" size="30"></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input name="pole2" type="password" value="Пароль" size="30"></td>
</tr>
<tr>
<td>URL-адрес сайта:</td>
<td><input name="pole3" type="text" value="https://sevidi.ru" size="30"></td>
</tr>
<tr>
<td>Название сайта:</td>
<td><input name="pole4" type="text" size="30"></td>
</tr>
<tr>
<td valign="top">Описание сайта:</td>
<td><textarea name="pole5" cols="40" rows="10"></textarea></td>
</tr>
<tr>
<td>Тема сайта:</td>
<td>
<select name="pole6">
<option value="0">Тема не выбрана</option>
<option value="1">Тема 1</option>
<option value="2">Тема 2</option>
<option value="3">Тема 3</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" bgcolor="#0000FF"><font size="5" color="#FFFFFF">Банер</font></td>
</tr>
<tr>
<td></td>
<td><input name="pole7" type="file" size="30"></td>
</tr>
<tr>
<td> </td>
<td>
<input type="reset" value="Очистить">
<input type="submit" value="Отправить">
</td>
</tr>
</table>
</form>
</body>
</html>
В окне веб-браузера это будет выглядеть ТАК.
В итоге в окне веб-браузера будет отображена форма, состоящая из пяти текстовых полей (Логин, Пароль, URL-адрес сайта, Название сайта и Описание сайта), списка значений (Тема сайта), поля выбора файла с кнопкой Обзор, а также двух кнопок Очистить и Отправить.
Кнопка Очистить возвращает все значения формы к первоначальным, Кнопка отправить позволяет отправить данные, введенные пользователем, программе (URL-адрес которой указан в параметре action тега <form>, в данном случае file.php) расположенной на веб-сервере. Программа обработает данные и либо добавит сайт в каталог и выдаст подтверждение об успешной регистрации, либо выдаст сообщение об ошибке, если обязательное поле не заполнено или заполнено неправильно. В нашем случае программы обработки нет, и отправка данных ни к чему не приведет, точнее приведет к ошибке "Не удается найти веб-страницу".
Форма добавляется в HTML-документ при помощи парного тега <form>. Внутри тегов <form> и </form> могут располагаться теги <input>, <textarea> и <select>, вставляющие в форму элементы управления:
<form>
<input type="text">
<textarea></textarea>
<select>
<option>
</select>
<input type="file">
<input type="reset">
<input type="submit">
</form>
Рассмотрим их подробнее.
Парный тег <form> позволяет добавить форму в HTML-документ. Тег имеет следующие параметры:
<form action="file.php">
<form action="https://sevidi.ru/file.php">
[имя_параметра] = [значение_параметра]
Пары параметр = значение отделяются друг от друга символом амперсанда (&). Например:
https://sevidi.ru/file.php?pole1=Login&pole2=Password
Все специальные символы, а также буквы, отличные от латинских (например, буквы русского языка), кодируются в формате %nn, а пробел заменяется знаком "+". Например, фраза "каталог сайтов" будет выглядеть следующим образом:
%EA%E0%F2%E0%EB%EE%E3 + %F1%E0%E9%F2%EE%E2
В теге <form> значение GET для параметра method задается так:
<form action="https://sevidi.ru/file.php" method="get">
Метод GET применяется, когда объем пересылаемых данных невелик, так как существует предел длины URL-адреса. Длина не может превышать 256 символов;
<form action="https://sevidi.ru/file.php" method="post">
<form action="https://sevidi.ru/file.php" method="post" enctype="application/x-www-form-urlencoded">
<form action="https://sevidi.ru/file.php" method="post" enctype="multipart/form-data">
<form action="https://sevidi.ru/file.php" method="post" enctype="text/plain">
<form action="https://sevidi.ru/file.php" method="post" enctype="multipart/form-data" target="_blank">
Тег <input> позволяет вставлять в форму элементы управления, например текстовое поле, кнопку или флажок. Этот тег имеет следующие параметры:
<input type="text">
<input type="password">
<input type="file">
<input type="checkbox">
<input type="radio">
<input type="reset">
<input type="submit">
<input type="image" src="/images/menu1_r1_c1.gif">
<input type="button">
Такую кнопку имеет смысл использовать только с прикрепленным к ней скриптом.
<input type="hidden">
<input type="text" name="pole2">
Остальные параметры специфичны для каждого отдельного элемента. Поэтому рассмотрим каждый элемент отдельно.
Для текстового поля и поля ввода пароля применяются следующие параметры:
<input type="text" name="pole2" value="http://">
<input type="text" name="pole2" value="http://" maxlength="100">
<input type="text" name="pole2" value="http://" maxlength="100" size="30">
Для кнопок используется один параметр:
<input type="submit" value="Отправить">
Для скрытого поля указывается один параметр:
<input type="hidden" name="pole2" value="1">
Для полей флажков используются следующие параметры:
<input type="checkbox" name="check1" value="yes">Текст
<input type="checkbox" name="check1" value="yes" checked>Текст
Элементы checkbox можно объединить в группу. Для этого необходимо установить одинаковое значение параметра name. В этом случае передаваемым значением является строка с разделенными запятыми значениями параметра value всех отмеченных флажков.
При описании элемента-переключателя используются такие параметры:
<input type="radio" name="radio1" value="yes">Текст
Если ни одно из значений не выбрано, никаких данных передано не будет;
<input type="radio" name="radio1" value="yes" checked>Текст
Элемент-переключатель может существовать только в составе группы подобных элементов, из которых может быть выбран только один. Для объединения переключателей в группу необходимо установить одинаковое значение параметра name и разное значение параметра value:
Укажите ваш пол: <br>
<input type="radio" name="radio1" value="male" checked>Мужской
<input type="radio" name="radio1" value="female" checked>Женский