Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Интернет технологии -> PHP -> PHP и формы


PHP и формы

Ни для кого не является секретом, что наиболее распространенным способом взаимодействия html-страницы с сайтом является форма. Форма (то есть html-элемент образуемый тегом form) используется и бесплатными почтовыми службами, электронными магазинами и многими другими типами сайтов.

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

Текстовые поля

Под текстовыми полями в этой статье понимаются элементы, создаваемые тегам input со значением параметра type равным text и тегом textarea. Организовать обработку формы состоящей из нескольких таких полей проще всего. На листинге ниже приведен листинг с html-разметкой для такой формы.

<form action='do.html' method='post'>
 <input type='text' name='txt[0]' value=''><br>
 <input type='text' name='txt[1]' value=''><br>
 <input type='text' name='txt[2]' value=''><br>
 <input type='text' name='txt[3]' value=''><br>
 <input type='text' name='txt[4]' value=''><br>
 <input type='submit' value='Отправить'>
</form>

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

<?php
 while(list($key,$val) = each($txt))
  echo "ключ - $key, значение - $val<br>\n";
?>

Переключатели

Переключателями (checkbox) в этой статье называются элементы, создаваемые тегам input со значением параметра type равным checkbox. Форма для использования переменного количества <переключателей> строится абсолютно так же. Обратите внимание, что выбор конкретного значения переключателя (то есть значение свойства value) не важен. Пример приведен в листинге ниже:

<form action='do.html' method='post'>
 <input type='chekbox' name='chb[0]' value='1'><br>
 <input type='chekbox' name='chb[1]' value='1'><br>
 <input type='chekbox' name='chb[2]' value='1'><br>
 <input type='chekbox' name='chb[3]' value='1'><br>
 <input type='chekbox' name='chb[4]' value='1'><br>
 <input type='submit' value='Отправить'>
</form>

Однако обработка такой формы отличается от обработки, описанной для текстовых полей. В данном случае необходимо определить, включил или нет посетитель сайта тот или иной переключатель. Если включил - то соответствующий элемент массива существует, если нет - то отсутствует. В следующем листинге приведен пример PHP сценария, который распечатывает включенные переключатели:

<?php
 echo "выбранные значения<br>\n";
 while(list($key,$val) = each($chb))
  echo "ключ - $key<br>\n";
?>

Радио-кнопки

Перед тем как описывать обработку радио-кнопок необходимо вспомнить, как они работают. Суть радио-кнопок (элементы созданные тегами input со значением параметра type равным radio) заключается в том что, выбирая одну кнопку, пользователь автоматически снимает выделение с другой кнопки из этого же набора. Кнопки объединяются в набор очень просто: у всех кнопок в наборе одно и тоже имя. А вот значения (то есть параметры value) у кнопок в наборе - разные. И на сайт будет отправлено значение выбранной кнопки с именем набора. Так же как и в случае с текстовыми полями и переключателями имена наборов радио-кнопок должны оформляться как имена элементов массива в PHP. Пример такой формы приведен в следующем листинге:

<form action='do.html' method='post'>
 // первый набор кнопок
 <input type='radio' name='rdi[0]' value='1'>
 <input type='radio' name='rdi[0]' value='2'>
 <input type='radio' name='rdi[0]' value='3'><br>
 // второй набор кнопок
 <input type='radio' name='rdi[1]' value='1'>
 <input type='radio' name='rdi[1]' value='2'>
 <input type='radio' name='rdi[1]' value='3'><br>
 // третий набор кнопок
 <input type='radio' name='rdi[2]' value='1'>
 <input type='radio' name='rdi[2]' value='2'>
 <input type='radio' name='rdi[2]' value='3'><br>
<input type='submit' value='Отправить'>
</form>

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

<?php
 while(list($key,$val) = each($rdi))
  echo "ключ - $key, значение - $val<br>\n";
?>

Заключение

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

Источник: www.webber.ru

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.