Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 17.05.2018 13:45:58

Выбрать вариант реализации

Доброго времени суток, прошу помощи зала

Задача:
Реализовать возможность заполнения он-лайн анкеты. Анкета состоит из 10 блоков. Пользователь заполняет блок данных, нажимает кнопку Далее, система проверяет заполненные данные на ошибки, если ошибок нет, открывает следующий блок для заполнения. У пользователя есть возможность вернутся к предыдущему блоку и откорректировать ранее внесенную информацию. В БД информация сохраняется после заполнения всех блоков. В большенстве блоков есть выпадающие списки, их много, списки в пределах блока  могут быть зависимы друг от друга.

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

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

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

Какой из вариантов более правильный или оба в корне не верны. Может кто-то делал аналогичною задачу, поделитесь опытом, а то никак не могу определится как будет лучше.

Не в сети

#2 17.05.2018 18:34:08

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Выбрать вариант реализации

Сессиия, пиши все туда.

Не в сети

#3 17.05.2018 21:05:33

Re: Выбрать вариант реализации

первый вариант проще технически, если отказаться от "загрузки следеющего блока аяксом", а сразу сделать одну форму с полным набором полей. javascript просим открывать поочередно по одному fieldset:

https://github.com/artoodetoo/formToWizard

ПМСМ, это концептуально тоже вернее. весь набор входящих данных является связанным единым целым. можно прогать классы реквеста и контроллера в единственном числе.
последовательная подача порциями это задача представления и может быть реорганизована без неоходимости править что-то в контроллере.

Изменено artoodetoo (17.05.2018 21:17:11)


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела