Как вывести ошибки при заполнении html формы - Как вывести ошибки при заполнении html формы стр.2
| Индекс материала |
|---|
| Как вывести ошибки при заполнении html формы |
| Как вывести ошибки при заполнении html формы стр.2 |
| Все страницы |
Это удобный код, поскольку все ошибки сохраняются в одной переменной. Переменную можно легко передать куда угодно, если вы не хотите, чтобы она находилась в глобальной области видимости. Использование имени переменной в качестве ключа сохраняет связи между полем, которое явилось причиной ошибки, и самим сообщением об ошибке. Эти связи также облегчают выполнение цикла по элементам при показе ошибок. Можно автоматизировать скучную задачу вывода html формы.
Функция pc_print_form() в примере ниже показывает, как это сделать.
function pc_print_form($errors)
{
$fields = array('name' => 'Name','rank' => 'Rank','serial' => 'Serial');
if (count($errors))
{
echo 'Please correct the errors in the form below.';
}
echo '<table>';
// выводим ошибки и переменные формы
foreach ($fields as $field => $field_name)
{
// открываем строку
echo '<tr><td>';
// печатаем ошибку
if (!empty($errors[$field]))
{
echo $errors[$field];
}
else
{
echo ' '; // чтобы не портить внешний вид таблиц
}
echo '</td><td>';
// печатаем имя и введенную информацию
$value = isset($_REQUEST[$field]) ? htmlentities($_REQUEST[$field]) : '';
echo $field_name.':';
echo '<input type=\"text\" name=\"$field\" value=\"$value\" />';
echo '</td></tr>';
}
echo '</table>';
}
Сложная часть функции pc_print_form() начинается с массива $fields. Ключ – это имя переменной; значением является подходящее для показа имя поля. Определив их в начале функции, можно создать цикл по значениям с помощью оператора PHP foreach; иначе понадобятся три отдельные строки с идентичным кодом. К этому добавляется использование имени переменной в качестве ключа в массиве $errors, поскольку можно найти сообщение об ошибке внутри цикла, просто проверяя элемент $errors[$field].
Если необходимо распространить этот пример на поля ввода, отличные от text, модифицируйте массив $fields, включив дополнительную метаинформацию о типах полей html формы:
$fields = array( 'name' => array('name' => 'Name', 'type' => 'text'),
'rank' => array('name' => 'Rank', 'type' => 'password'),
'serial' => array('name' => 'Serial', 'type' => 'hidden') );
Информация копипастерам
Внимание! Копирование контента с сайта, возможно только с разрешения администратора. Т.е. Меня! Я скорее всего разрешу Вам это сделать, в обмен на живую ссылку, на статью оригинал.
Как вывести ошибки при заполнении html формы - Как вывести ошибки при заполнении html формы стр.2
