Храните некоторую информацию между различными «новыми» формами - PullRequest
0 голосов
/ 28 декабря 2010

У меня есть форма, в которой пользователь может выбирать опции из множества полей выбора. Форма используется для регистрации нескольких элементов из RSS-канала. Пользователь заполняет форму, нажимает кнопку «Создать» и получает такую ​​же форму для следующего элемента в списке.

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

Каков наилучший способ сделать это? Я определил четыре способа сделать это:

Сессии

Просто сохраните значения в хэше сеанса. Это, конечно, сработает и очень просто, но у меня есть какое-то неопределенное чувство, что это плохая идея. Это также не будет работать, если пользователь использует форму из разных вкладок в браузере.

печенье

Я думаю, в основном то же самое, что держать их на сессии.

Профиль

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

База данных

Самый сложный способ, который я придумал, - хранить информацию в базе данных и использовать параметр запроса, чтобы отслеживать, какую информацию следует использовать. Это, вероятно, излишне, но в некотором смысле лучший способ для меня. Мне не нравится идея сохранять такое состояние в сеансе или в файлах cookie.

Я что-то упустил? Или что-то?

1 Ответ

0 голосов
/ 28 декабря 2010

Если после заполнения первой формы некоторые данные сохраняются в БД (объект создан), то вы можете использовать эти данные из БД для заполнения новой формы.

Если после заполнения первой формы в db ничего не сохраняется, то вы можете создать в памяти некоторые объекты на основе параметров из предыдущего поста и на основании этого (только на params) вы можете подготовить новую форму. Но, конечно, данные из предыдущей формы должны быть добавлены как скрытые поля во второй форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...