DennisKingsman
@DennisKingsman
Студент

Как добавлять данные постепенно в БД?

Я могу создать html файл в котором укажу поля, кнопку и при нажатии этой кнопки вызовется метод Get в сервлете ( этот метод ничего не возвращает) он просто добавит данные в бд, в таблице у меня есть not null поля, поэтому транзакцию надо производить когда собраны все данные сразу. Я пытаюсь разобраться как сделать так, чтобы было несколько html файлов , в первом просто было две ссылки (юр лицо и физ лицо) , и исходя из того по какой перейдет пользователь я получу данные о том какое он лицо, после этого его перекинет на доступные тарифы и исходя из того какой тариф он выберет я получу id необходимого тарифа, а потом его перекинет на третью страницу с бланком где он введет ФИО, адрес, паспорт, если выбрал физ лицо, и id фирмы если юр, и потом все эти данные ФИО, АДРЕС, ПАССПОРТ\ОГРН, ЮР\ФИЗ, ID тарифа разом добавятся в таблицу, хранящую заявки , как мне аккумулировать эти данные чтобы по итогу они были собраны вместе для того чтобы поместить в дб?
  • Вопрос задан
  • 176 просмотров
Решения вопроса 2
bitniks
@bitniks
Go/PHP/Symfony developer
Аккумулировать данные в сессии
Ответ написан
@frozen_coder
Java-developer
Как вам уже заметили в комментариях, вам необходимо погуглить назначения методов HTTP, ибо метод GET вы используете некорректно.

Про сессию уже написали. Ещё вариант - это использовать local strorage на стороне клиента и писать-читать из него (немного поработать с js).

Если варианты выше не подходят, то можно в отдельной таблице хранить проекты заявок. Т.е. пользователь сначала создаёт проект заявки первым запросом - сохраняем его в отдельную таблицу, а потом на каждом шаге в эту запись добавляются данные с отдельных форм. В финале этот проект становится заявкой - удаляется из таблицы проектов и переносится в таблицу заявок. Это решение не зависит от состояния сессии и local storage. Пользователь может продолжить заполнять заявку с другого клиента в другой сессии, ведь мы храним его проект у себя в базе. Как бонус, таким макаром можно при необходимости организовать пользовательские шаблоны заявок (если форма большая и пользователем большая её часть вводится одинаковая), чтобы быстро создавать новые заявки из сохранённых шаблонов.

Если требованиями not null полей можно немного принебречь, то можно ввести статусы заявки или флаг является ли заявка проектом и хранить их в одной таблице. Тоже, что и в предыдущем варианте, но только всё в одной таблице и в итоге мы просто меняем статус или флаг записи.

Ещё вариант, если у вас есть html, который не меняется по ходу изменения форм (т.е. вы просто меняете куски страниц при переходе по формам), то можно завести скрытые поля, куда дублировать заполнение формы пользователем. В итоге у вас эти скрытые поля заполнены и именно их содержимое отправляется на сервер в итоге. Видел такое на старых проектах.

В проектах с SPA такой проблемы нет, т.к. в таком случае на клиенте просто выполняется управление состоянием и роутингом
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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