wizzard form

Baranov_Dron

Новичок
wizzard form

Есть задача - подача объявления, состоит из трёх этапов, 1-информация об авто, 2- фото, 3 - контактная информация.
Разделена на три страницы с формами. Как сделать без использования аякса между ними перевод?
Моя идея такова.
1) информация об авто - валидация идёт отправкой POST запроса на эту же форму, если валидация не прошла, кидаем эту же форму с ошибаками, а если да, то вначале кидаем в сессию данные этой формы, а потом генерируем в сессию также значение вида md5($user_ip.'form1'.'sitename') и редирект на творую форму
2) Проверяем значение прошлое(md5 которое генерировал), если оно не верно, то пишем соответсвующую ошибку. В противном случае выводим форму. И дальше всё остальное аналогично. И генерируем md5($user_ip.'form2'.'sitename')
3) Тут опять проверяем значение... Но тут сложнее...если валидация удалась, что делать? нужно стереть сессию, и переслать на форму спасибо за подачу объявления, НО в ней вывести данные: пароль, email. Но как их передать форме с благодарностью? Ведь к тому времни мы очишаем сессию, а в get параметрах при редиректе передавать информацию я не хочу о пароле. Как решить эту проблему? и может есть теоретическая реализация form wizzard попроще?
 

dimagolov

Новичок
как вариант, подумай. сделай ОДНУ форму, которая средствами JS будет отображаться в 3 этапа, межу которыми можно будет ходить вперед-назад, а потом из 3-го этапа, после опять же JS вавлидации будет отправляться всем скопом на сервер и уже проходить валидацию и обработку там.

или задача исключить JS? если да, то почему? по идее можно сверстать так, чтобы без JS все отображалолсь одной длинной колбасой (ни и валидации на клиенте не будет), а при его наличии - отдельными страницами.
 

Baranov_Dron

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

Breeze

goshogun
Команда форума
Партнер клуба
А зачем очищать всю сессию?
Или почему при очистке одной сессии не завести другую?
 

Baranov_Dron

Новичок
Breeze да очистить одну, и завести другую не плохой вариант, наверное так и сделаю...
Кстати реализацию доски я делаю, что-то типа авто ру, только ясно дело меньше. Ща посмотрел их внимательней...
Разве это есть гуд, когда подал объявление, вернулся назад, нажал подать - подано ещё одно?
 

dimagolov

Новичок
Baranov_Dron, почитай внимательно этот форум, тут немерянно раз обсуждались темы, как правильно деалть формы.

У тебя с 3-х этапным составлением объявы и загрузкой фоты на 2-м самой большой траблой будет то, что фотки до финальной приемки надо будет хранить во временной папке и чистить ее время от времени, так как не все загруженные фотки успешно уйдут в объявы. Ни с чем больше проблем не вижу вообще - запоминаешь в сессии (кроме стандартного хеша формы текущей формы) еще и стадию процесса + уже полученные данные. Имея все это не проблема переходить вперед-назад по этим 3-м формам.
 

Baranov_Dron

Новичок
пожалуй стадию фоток перемещу просто напросто в конец.
dimagolov, Breeze спасибо за ответы!
 

dimagolov

Новичок
помещение фоток в конец не поможет, так как не кошерно заставлять перезагружать фотку, если не прошла валидация. по-любому ее надо где-то временно хранить и чистить, за одно можно привьюху показывать с коментарием "фотка загружена, выберете другую, чтобы заменить".
 
Сверху