Форма отправки с предварительным просмотром - PullRequest
0 голосов
/ 08 апреля 2009

У меня довольно длинная HTML-форма, которую пользователь заполняет. После его заполнения пользователю предоставляется предварительный просмотр данных, которые они отправляют. Оттуда они могут зафиксировать данные в системе или вернуться и отредактировать их. Мне интересно, каков наилучший подход к обработке этого шага предварительного просмотра. Вот некоторые идеи, которые у меня были:

  • Сохраните данные формы в файле cookie для превью
  • Сохраните данные формы в сеанс
  • Поместить данные в БД, с столбец состояния, указывающий, что это Предварительный просмотр

Что вы обычно делаете при создании предварительного просмотра, подобного этому? Есть ли другие вопросы для рассмотрения?

Ответы [ 3 ]

3 голосов
/ 08 апреля 2009

Поместить данные как скрытые поля ().

Почему бы не куки или сеанс? - Если пользователь решит отказаться от этих данных, он может просто перейти на другую страницу. Когда он вернется позже и увидит данные нетронутыми, он может быть удивлен.

Почему не база данных? - Если пользователь просто закроет браузер, кто очистит данные в вашей БД? ... Я бы не хотел писать для этого задание cron.

1 голос
/ 08 апреля 2009

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

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

Размещение данных в базе данных (со столбцом состояния) не требуется, если вы не хотите каким-либо образом отслеживать и сохранять операции предварительного просмотра и редактирования. Вы можете представить базу данных в виде ящика на столе - вы положите туда бумаги с тем, что хотите сохранить, и найдете позже. Если вы просто рисуете предварительный просмотр и после того, как результат отправлен, в ящике / базе данных сохраняется только окончательная версия, а предварительный просмотр складывается и выбрасывается, чем вы не положите его в базу данных. Но если по какой-то причине вы думаете, что позже будете просматривать черновики, они должны быть сохранены в базе данных.

Я не уверен, что с моим английским все понятно, но я старался изо всех сил: D

0 голосов
/ 08 апреля 2009

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

Сессия подходит только для (в зависимости от вашей настройки) задач, которые займут меньше часа. Ручной ввод данных (например, каталогизация CD / DVD), которые легко начать и легко завершить, идеально подойдет для хранения сеанса. Точно так же, если человек должен остановиться и получить какие-то документы (опять же, в случае с ипотечным приложением, или с налоговой формой в Интернете и т. Д.), У вас будет действительно разгневанный человек, если время сеанса истекло, и они должны перепечатать информацию.

Я бы не стал напрямую вставлять содержимое в файл cookie, поскольку данные передаются для последующих запросов и, предположительно, у вас уже есть доступ к основным функциям сеанса.

Если вы пользуетесь БД, вам потребуется пометить время доступа (при условии, что вы не просто оставите его с каким-то сохраненным именем, определенным вашим пользователем, например, «Мои документы по ипотечному кредиту 2008 года»). ), так что вы можете почистить это позже. Если пользователь сохраняет его в середине формы, просто оставьте его, пока он не заполнит форму или не удалит ее.

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