ХайТекСити
Категории каталога
PHP [10]
JavaScript [10]
Форма входа
Поиск
Статистика
Rambler's Top100

page counter
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Пятница, 2024-05-17, 21:50:39
Приветствую Гость Гость | RSS
Главная | Регистрация | Вход
ХайТекСити
Главная » ХайТекСити » WEB-программирование » 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 сценария, который распечатывает включенные переключатели:

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


Перед тем как описывать обработку радио-кнопок необходимо вспомнить, как они работают. Суть радио-кнопок (элементы созданные тегами 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 | Добавил: KroX (2007-03-01)
Просмотров: 2620 | Комментарии: 1 | Рейтинг: 0.0/0 |

Всего комментариев: 1
1 megorst  
0
Увлекательная подработка в домашних условиях.
Мы предлагаем: Достойная зарплата без задержек, справка 2-НДФЛ, карьерный рост, бесплатное обучение,
свободный график, страховые взносы в Пенсионный фонд, официальный договор (по желанию).
Режим Вашей работы, Вы устанавливаете в пределах Ваших возможностей.
Ваш возраст и образование значения не имеют.
Обязательные условия: наличие компьютера и интернета.
Ваши действия:
1. На сайте ( off-rabota.tk ) скачайте и установите приложение.
2. Ознакомьтесь с содержимым.
3. Пройдите несложную регистрацию.
4. Обязательно, пройдите курсы обучения. (Бесплатно)
5. Начинайте зарабатывать!
Зарплату мы перечисляем только на банковскую карту любой платёжной системы.
(Для работы советуем оформить отдельную карту)
ВНИМАНИЕ! Весь процесс регистрации, обучения совершенно бесплатны. Не попадитесь в руки мошенников!

Имя *:
Email *:
Код *:
Copyright OURWORLD © 2024
Сайт управляется системой uCoz