#6. 1 php web-приложения Отображение данных сложной формы
Primary tabs
В предыдущей главе описывались различные элементы управления, используемые в HTML-формах: текстовые поля, списки, выключатели и т.п. Эта глава посвящена вопросу разработки web-приложений, которые получают данные, введенные пользователем в форму, проверяют их на корректность и обрабатывают их определенным образом. В этой главе рассказывается, как определить используемый тип браузера, как выполнять проверку различных типов данных, как перенаправить пользователя на различные URL, как разместить все web-приложение в одной форме и многое другое.
Структура типичного web-приложения имеет следующий вид.
validate_data() ; if (count($errors) > 0) { display_errors(); display_form(); } else { process data(); }
Функция validate_data
выполняет проверку всех введенных данных (например, являются ли строки, введенные в поля, предназначенные для ввода чисел, действительно числами). При обнаружении ошибок функция заносит их в глобальный массив $еггогs
. Если проверка выявила ошибки, то их перечень выводится при помощи функции display_errors
, а функция display_form
выводит форму с полями, которые содержат уже введенные пользователем значения. Если же проверка данных прошла успешно, они обрабатываются при помощи функции process_data
. Проверка данных на корректность и предоставление пользователю возможности исправить допущенные ошибки является значительной и весьма важной частью любого web-приложения.
Отображение данных формы
В предыдущей главе уже рассматривался вопрос отображения данных, введенных в отдельные элементы управления. Для целей отладки web-приложения полезен скрипт, который может отобразить все введенные в форму данные. При разработке сложной формы можно легко допустить ошибку в названии элемента управления или присвоить двум элементам идентичное название, и такой скрипт поможет выявить подобные ошибки. В примере 1 приведена форма, содержащая несколько различных элементов управления. Внешний вид формы изображен на рис. 1.
Пример 1. Пример сложной формы
<HTML> <HEAD> <TITLE> Пример сложной формы </TITLE> </HEAD> <BODY> <CENTER> <H1> Пример сложной формы </H1> <FORM METHOD="POST" ACTION="phpformdata.php"> Введите Ваше имя <INPUT NAME="Name" TYPE="TEXT" > <BR> <BR> Выберите любимые фрукты: <SELECT NAME="Food[]" MULTIPLE> <OPTION value=Апельсин>Апельсин</OPTION> <OPTION value=Гpушa>Груша</OPTION> <OPTION value=Персик>Персик</OPTION> <OPTION value=Яблоко>Яблоко</OPTION> </SELECT> <BR> <BR> <INPUT TYPE=SUBMIT VALUE="OK"> </FORM> </CENTER> </BODY> </HTML>
Для отображения всех данных, введенных в форме, используется цикл foreach
по всем элементам массива $_REQUEST
. Если какой-либо элемент массива сам является массивом (это может случиться в случае использования списков с множественным выбором), используется вложеный цикл foreach
. Скрипт-обработчик формы приведен в примере 2, результат его выполнения — на рис. 2.
Пример 2. Отображение всех данных формы
<HTML> <HEAD> <TITLE> Oтображение всех данных формы </TITLE> </HEAD> <BODY> <CENTER> <H1> Oтображение всех данных формы </H1> В форму были введены данные: <BR> <?php foreach ($_REQUEST as $key => $value) { if (is_array($value)) { foreach ($value as $item) { echo $key, " => ", $item, "<BR>" ; } } else { echo $key, " => ", $value,"<BR>" ; } } ?> </CENTER> </BODY> </HTML>
- Log in to post comments
- 320 reads