Проверка многостраничной формы с помощью php

Это мой первый пост, так что будьте добры; )

Я хочу создать многостраничную форму с помощью php.

Форма будет распространяться на 3 страницы, каждая страница должна будет проверять данные, введенные в форму, на клиенте (с использованием проверки jquery) и, если javascript отключен, на сервере, где сообщения об ошибках должны отображаться рядом с соответствующей формой. поле.

После проверки данные необходимо передать на следующую страницу в форме, желательно с использованием переменных сеанса.

Основная проблема, с которой я столкнулся, заключается в том, что большинство сценариев проверки теперь оставляют action="" как самостоятельную ссылку на текущую страницу, и поэтому такие переменные сообщения не могут быть переданы на другую страницу в цепочке форм.

Я хочу иметь сценарий проверки, который будет проверять, а затем публиковать на новой странице после нажатия кнопки отправки.

Спасибо

Питер


person mathalete    schedule 06.08.2009    source источник


Ответы (4)


Вам не нужно публиковать на следующей странице.

Вы можете проверить поля формы на текущей странице, сохранить их в сеансе, а затем использовать перенаправление header("location: nextPage.php"); exit(0); для перехода на следующую страницу.

person John Rasch    schedule 06.08.2009
comment
Спасибо за это, по размышлению, это лучший подход! Ваше здоровье. - person mathalete; 07.08.2009

как правило, вы можете сделать что-то вроде

<form onsubmit="return validateForm();" method="post" action="/wherever">

И это вызовет вашу форму проверки javascript, не отправляя форму, если форма проверки возвращает false.

Вам также нужно будет выполнить проверку на стороне сервера, и я предлагаю вам сохранить результаты проверки предыдущих форм в сеансе, а не повторно публиковать их (поскольку их не нужно будет проверять каждый раз!)

person Mez    schedule 06.08.2009

Вы должны использовать шаблон перенаправления сообщений. Разместите переменные на следующей странице (странице управления). Если проверки пройдены, эта страница выполняет

header("Location: /page2.php");

после сохранения опубликованных переменных в сеансе. Если проверка на стороне сервера не удалась, вы делаете заголовок для page1.php с ошибкой. pТаким образом, вы можете использовать кнопку «Назад».

person Byron Whitlock    schedule 06.08.2009

Я рекомендую этот валидатор JS. Очень прост в использовании и вообще не зависит от параметра action="", поэтому вы все равно можете установить его на все, что захотите.

person Alex S    schedule 06.08.2009