Задать вопрос
Bandicoot
@Bandicoot
Вась-программист

Как организовать временное хранилище для данных от нескольких форм?

Суть задачи такая: есть несколько форм, у каждой есть кнопки сохранения (назовем их сабмиты). И есть главный сабмит на странице, по нажатию на который сохраняются данные из всех форм в базу. После заполнения каждой формы пользователь жмет на ее сабмит и данные должны сохраняться где-то во временном хранилище (на клиенте), чтобы потом, после заполнения всех форм, через главный сабмит все данные сохранились в базу (на сервере). Как реализовать такой изврат?) Что лучше использовать в качестве временного хранилища?
  • Вопрос задан
  • 669 просмотров
Подписаться 2 Оценить 5 комментариев
Решения вопроса 3
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
Да в принципе можете и в локальной базе создать таблицу для временного заполнения форм. У юзера сохранять cookie, который будет ключем в вашей строке. С каждым сабмитом, юзер отправляет этот ключ и данные из одной из форм, локальная временная таблица дополняется. При нажатии большого сабмита, из временной таблицы уже идет в главную.
Периодически удалять старые записи временной таблицы, если они там висят например больше суток, ну и cookie делать тогда устаревающим за сутки
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Веб-разработка
Если данные нужно хранить до перезагрузки страницы - создайте просто для каждой формы объект и держите его в памяти, обновляя при необходимости. Любое другое решение в этих условиях - overkill.
Вот простейший вариант.
Ответ написан
Комментировать
Можно хранить данные прямо в формах. Если вы реализуете функционал, при котором при "сабмите" первой формы она удаляется и подгружается вторая форма - просто не удаляйте первую, а скрывайте с помощью css.
Вариант от Алексей Уколов так же хорош, но он сложнее.
Если предстоят реальные перезагрузки страницы либо переход на другие страницы - тогда используйте sessionStorage/localStorage
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы