проверка формы без сброса - PullRequest
0 голосов
/ 13 апреля 2010

Есть ли способ проверить данные, отправленные формой на страницу PHP, вернуться на страницу формы БЕЗ сброса отправленных данных и показать ошибку?

Форма имеет 20 полей, и мне нужно проверить одно из них на бд. Если это не удается, пользователь может быть перенаправлен на страницу формы с заполненной формой и отображением сообщения об ошибке в поле, которое является «неправильным».

Мне бы хотелось получить совет по технике вместо заполнения каждого поля с использованием PHP.

UPDATE:

Я не хочу использовать какое-либо решение, которое предполагает заполнение полей самостоятельно !!!

Я хочу решение, которое вернется на страницу формы, заполненную предыдущими значениями. Я пробовал что-то вроде js.history.back или window.back (). Но форма возвращается пустой ...

ОБНОВЛЕНИЕ : Если вы ищете этот тип поведения, в настоящее время есть несколько различных методов для достижения этой цели. В настоящее время я использую jQuery (Ajax).

Ответы [ 3 ]

2 голосов
/ 13 апреля 2010

В поля формы HTML добавьте опубликованные значения в качестве значения поля.

например:

<input type='text' name='email' value='<?php echo $_POST['email']; ?>' />
0 голосов
/ 13 апреля 2010

На странице проверки формы

<?php
$form_values = $_POST;
//Your Form Validation
//$form_validated = TRUE/FALSE;  // FALSE if there were errors

if ($form_validated) {$form_values = array();}
$_SESSION['form_values'] = $form_values; /* if your form validation page and form page is not on the same page and can also use the same technique for error messages */
?>

На странице формы для каждого поля ввода.

<?php
$form_values = $_SESSION['form_values']; //if your form validation page and form page is not on the same page
unset($_SESSION['form_values']);

echo '<input type="text" name="user_name" value="'.$form_values['user_name'].'" />';
?>

Различные типы ввода должны обрабатывать массив $form_values по-разному, но это должно помочь вам начать работу.

Если вы не используете отдельную страницу проверки формы, вы можете получить значения формы непосредственно из $_POST массива.

0 голосов
/ 13 апреля 2010

Да, просто проверьте формы заранее, убедитесь, что вы запустили форму HTML после процедуры проверки, и если проверка не удалась, перезагрузите форму со всей предшествующей информацией в полях.

Это может выглядеть примерно так:

<?php if(isset($_POST['submit']){
    // validation code goes here with a trigger variable to
    // contain true or false depending on the outcome    
}

if($trigger==false){
    // load up your post data here    
} 

echo '
    <!-- form HTML goes here -->
';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...