Вы здесь

Простой способ сохранить данные из формы.

2

Долго пилю многоступенчатую форму.
Дошел до момента, нужно всё сохранять в базу данных.
Подскажите как это сделать проше всего.
В идеале, кормишь form_state, а друпал всё сохраняет.
Или подскажите как вы решаете подобные задачи?

Версия Drupal: 
7.x
Категория: 
Form API
Вопрос задан 24.04.2015 - 12:23

Ответы

1

Я делаю так, что каждый шаг - это отдельная форма, поэтому я сохраняю в $form_state['storage']['ШАГ'] = $form_state['values'] после каждого шага. И потом уже дергаю из storage значения.

Если тебе надо чтобы данные были доступны и вне формы. То делай примерно так: variable_set('НАЗВАНИЕ', $form_state['storage']). Так получишь переменную с массивом всех значений.

Ответ дан 24.04.2015 - 12:34
Аватар пользователя SAM
SAM
212

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

Комментарий оставлен 24.04.2015 - 13:14

Ну тогда создай таблицу в БД и туда на прямую сохраняй данные. Типа своего Entity.

Ещё как вариант использовать Enityform, и из неё сделать многоуровневую.

Комментарий оставлен 24.04.2015 - 16:07

Если форма общедоступная, то variable_set -не лучшая идея. переменные грузятся на каждой странице, и при большом объеме данных могут возникнуть проблемы, данный подход будет актуален если форма заполняется только одним пользователем... А если нужно использовать как временное хранилище - то нужно не забывать о variable_del();
подробнее опиши задачу, для чего нужно хранить шаг в базе? может сможем подсказать решение получше...

Комментарий оставлен 12.05.2015 - 13:48