Хороший алгоритм для создания динамической формы регистрации?

В общем, суть такова: Есть проект на Yii с использованием Yii-booster.

Есть форма регистрации.

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

1. Пустая страница с предложением добавить категорию.

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

3. Пользователь вводит новую подкатегорию, она появляется внутри категории.

4. Внутри подкатегории пользователь добавляет товары (появляется popup с формой ввода данных о товаре)



И так продолжается, пока пользователь не введет данные о всех товарах. Разумеется, всё это дело происходит без обновления страницы, все данные уходят через AJAX.



Собственно, проблема в следующем: Поскольку данные до нажатия «ОК» могут редактироваться, удаляться и прочее, писать данные в БД сразу после получения AJAX-запроса, например, о создании новой категории как-то бессмысленно, лучше дождаться, пока пользователь введет все данные. Еще непонятно как отрисовывать все эти поля ввода динамически, потому что при добавлении новой категории внутри появляется поле ввода подкатегории, аналогично при добавлении подкатегории для каждой внутри отображается поле ввода для товара.



Собственно, примеры кода, конечно же, приветствуются, но в принципе, буду рад и просто хорошему подробному описанию.



Заранее всем спасибо
  • Вопрос задан
  • 4805 просмотров
Пригласить эксперта
Ответы на вопрос 2
@sergei-grigorev
Можно помечать записи статусом «Черновик». В этом случае даже если произойдет обрыв соединения, и пользователь перелогиниться, он сможет продолжить работать над своими документами. Но в тоже самое время, т.к. записи в состоянии черновика, они не отображаются остальным. Как только пользователь завершит ввод, статус обновится на другой, например «Ввод завершен». Таким же образом появляется возможность удалять документы (без физического удаления) и затем восстанавливать их в случае крайней необходимости.
Ответ написан
XAKEPEHOK
@XAKEPEHOK
Сталкивался с подобной ситуацией. Сохраняйте данные в localStorage (все равно у вас все построение на JS) и потом, когда все параметры заданы постите на сервер. Так ничего не потеряется
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы