Как сохранить данные формы временно - PullRequest
3 голосов
/ 23 августа 2010

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

Вот вопрос:

Когда форма сохраняется в БД, включается несколько таблиц. Теперь я хотел бы представить функцию под названием «Сохранить форму», которая внутренне не проверяет форму и просто сохраняет все, что ввел пользователь.

Существуют потенциальные проблемы, такие как:

Q1> Как сохранить временные данные?

Q2> Что делать, если пользователь сохраняет временные данные без отправки формы, а затем выйти. Эта функция выглядит как черновик, предоставляемый Gmail.

Ответы [ 2 ]

8 голосов
/ 23 августа 2010

Вы можете создать сеанс для полей, которые вы хотите сохранить.Например,

$this_form = array(
  'field1' = 'value',
  'field2' = 'value2',
);

Затем сохраните это в сеанс :

$_SESSION['this_form'] = $this_form;

Если вы хотите быть очень ленивым, вы можете просто сохранить $_POST или $_GET переменная в сеансе.

$_SESSION['my_post'] = $_POST;// or $_GET depending on your form.

И, конечно, вы не знаете, что делать с ними, пока вы не проверите их и не выполните обычные прививки.

Вы можете восстановить прочитанный сеанспозже, просто вызвав его.

т.е.

echo $_SESSION['this_form']['field1'];

Когда вы закончите сеанс, вы можете удалить его командой unset:

т.е.

unset $_SESSION['this_form']

Есть также функции сеанса, которые вы можете использовать:

Функции сеанса PHP

5 голосов
/ 23 августа 2010

Q1 > Как сохранить временные данные?

Есть несколько способов сделать это. Вы можете сохранить его на другой стол. Вы также можете (возможно, более популярно) сохранить его в той же таблице, что и заполненные профили, но для этого пометить его как неполное через столбец. Этот столбец может быть назван complete. Если профиль не полный, он будет установлен на 0 или false. Если оно завершено, оно будет установлено на 1 или true. Затем вы можете сделать запрос на основе этого.

Затем можно «проверить» данные с помощью любой необходимой процедуры и установить для столбца значение 1 или true, если необходимо.

Q2 > Что делать, если пользователь сохраняет временные данные без отправив форму, а затем выйти. Эта функция выглядит как проект функция, предоставляемая Gmail.

Ответ выше также должен послужить этой цели.

Если вам нужно перезагрузить данные и позволить пользователю продолжить заполнение неполной формы, вам потребуется получить какой-то идентификатор для них, чтобы разрешить это. Вы можете сделать это, установив файл cookie, или с помощью какого-то уникального идентификатора, который они будут вводить в верхней части формы, например, SSN, номер телефона, номер студента и т. Д. (Или их комбинацию).


Если вы ищете такую ​​функцию, как черновик Gmail, вам потребуется реализовать какой-либо вызов AJAX, который автоматически запускает каждые X секунд / минут для автоматического сохранения данных.

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