Если форма не публикует страницу, на которой она находится, каков наилучший способ вернуть состояние ошибки обратно? - PullRequest
3 голосов
/ 29 июня 2010

Если у меня есть форма, которая находится на странице http://foo.com/get, но отправляет на http://foo.com/post, каков наилучший способ обработки отображения ошибок проверки?Я хочу перенаправить пользователя обратно на первую страницу.Как сохранить состояние формы (включая сообщения об ошибках), чтобы при следующем запросе после перенаправления на http://foo.com/get я мог получить эту форму и отобразить ее.Есть идеи?

1 Ответ

1 голос
/ 29 июня 2010

Вы можете использовать сеанс, но он требует некоторого оборудования.

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

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

Мой класс проверки формы автоматически сохраняет данные в сеансе, если онобнаруживает неверное представление, и мой класс визуализации формы проверяет его каждый раз, когда создается его экземпляр.Он также переопределит данные из БД (например, если вы редактируете существующую запись).Мой интерфейс сеанса автоматически удаляет устаревшие сообщения и данные формы.(Вы должны быть осторожны с AJAX или другими вещами, которые могут преждевременно очистить его при доступе к информации о сеансе.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...