Сохранение данных в QuickForms

  • Автор темы Автор темы prural
  • Дата начала Дата начала

prural

Новичок
Сохранение данных в QuickForms

Начал использовать QuickForms, но столкнулся с такой проблемой: если пользователь засубмител данные и форма отрисовывается снова, то поля в ней уже заполнены предыдущими данными. А хотелось бы чтобы они были пустыми.

Причем форме пофиг на SetDefaults, я пробовал очистить поля с помошью SetDefaults - не получается. Смотрел и исходники QF, один фиг ничего не понял.

Может ктото сталкивался с подобной проблемой?
 
если данные от пользователя пришли валидные, обработчик их принял и сделал с ним все, что нужно - делай редирект на ту же самую страницу.
 
Автор оригинала: magic
Вы двери в свой дом/картиру обычно ключом открываете или ломиком? Сначала нужно смотреть документацию, а не исходники. :)

http://pear.php.net/manual/en/package.html.html-quickform.intro-faq.php#AEN52212
Я смотрел эту документацию но ничего не понял. Подскажите пожалуйста, что всетаки надо сделать. Очень прошу.

-~{}~ 25.08.06 08:57:

Сделал пока через редирект, но имхо это криво. Может кто подскажет как отключить сохранение через сам QuickForm
 
prural
Ну конечно, это криво. Для всего мира прямо, а для тебя криво.

magic
И что смотреть по ссылке, которую ты дал?
 
Автор оригинала: Фанат
prural
а что у тебя за форма такая, интересно?
Просто в CMS есть форма добавления данных какогонить модуля, например новостей. И хочется чтобы когда юзер добавил данные ему высветилась новая пустая форма для добавления новой записи. А высвечивается уже заполненная
 
понятно.
так вот запомни. редирект надо всегда делать после отправки формы методом POST. вообще всегда. независимо от твоей возни с QuickForm.
 
Автор оригинала: Фанат
понятно.
так вот запомни. редирект надо всегда делать после отправки формы методом POST. вообще всегда. независимо от твоей возни с QuickForm.
Типа для того чтобы юзер, обновив страницу, не получил еще одну запись, идентичную предыдущей?
 
crocodile2u & Фанат
Вы наверное не поняли вопроса.

У Quick_Form есть одна фича или баг (кому как нравится). После отсылки формы, с дальнейшим путешествием по сайту и возврате на страницу - QuickForm иногда восстаналивает предыдущие данные. Принудительный SetDefaults и редиректы тут не помогут. Нужно использовать параметр $trackSubmit, о чем и написано в документации.
boolean $trackSubmit
(optional) Whether to track if the form was submitted by adding a special hidden field. If the name of such field is not present in the $_GET or $_POST values, the form will be considered as not submitted.
 
В чистом QuickForm сессий нет. ХЗ где она их сохраняет, спроси у спирита.

Может на нее погода влияет или какой-нибудь Auth или HTML_QuickForm_Controller. Но это восстановление данных можно выключить через trackSubmit.
 
мне не надо никого спрашивать. у меня своя голова на плечах имеется.
я не верю в погоду и бабушкины сказки.
я могу поверить только в кэширование на стороне клиента.
но в этом случае никакой серверной директивой trackSubmit сделать ничего нельзя
 
Это не серверная директива, а параметр конструктора.

Особо одаренные могут открыть исходники и посмотреть на функциональность.
 
мля.
ты, вроде, мне адекватным раньше казался. русский язык, во всяком случае понимал...
впрочем, кажется, это солнечная актичность сегодня такая. влияет на умы.
выздоравливай
 
Дело в том, что данные восстанавливаются на стороне сервера - в HTML четко прописываются values. Более того, если товарищ prural повесит на форму несколько правил, то при заходе на страницу сработает валидатор.
 
описанная тобой ситуация может произойти только при использовании метода GET.
При этом, количество случаев, когда после использования метода GET надо обязательно очищать форму, можно пересчитать по пальцам.

НЕ ГОВОРЯ УЖЕ О ТОМ что у чувака явный метод POST.
и откуда, в таком случае, в твоём валидаторе-шмалидаоре возьмутся данные - для меня большой вопрос!
 
Автор оригинала: magic
crocodile2u & Фанат
Вы наверное не поняли вопроса.

У Quick_Form есть одна фича или баг (кому как нравится). После отсылки формы, с дальнейшим путешествием по сайту и возврате на страницу - QuickForm иногда восстаналивает предыдущие данные. Принудительный SetDefaults и редиректы тут не помогут. Нужно использовать параметр $trackSubmit, о чем и написано в документации.
magic, не пори х--ни. Нигде никакого волшебного сохранения не происходит. Как правильно понял Фанат, фраза из FAQ, которую ты тут процитировал, относится к случаю, когда на страницу с формой типа GET переходят с GET параметрами, и тогда надо различать состояние "просто перешли" и "отправили форму", либо когда на странице > 1 формы (как GET, так и POST) и надо различать, какую из них отправили.

В любом случае, если $trackSubmit не использовать, никакого волшебного восстановления данных не будет, а просто вылезут ошибки проверки формы.

На исходный вопрос Фанат уже ответил --- надо делать redirect.
 
Сверху