2009-06-22 2 views
3

Я разрабатываю приложение для рельсов. (Я не думаю, что это проблема с рельсами) Существует процесс бронирования, который состоит из 3 шагов. Когда пользователь находится на шаге 2, если пользователь нажимает кнопку «Предыдущая», данные формы на шаге 1 должны быть такими же, как и раньше.Как сохранить данные формы при нажатии кнопки «Назад»

Прилагаю «history.go (-1);» на кнопку «Предыдущая».

Работает на моем браузере Firefox. Но это не работает в некоторых браузерах IE. Мой IE работает, хотя.

Как я могу заставить его сохранить данные формы, когда страница вернулась?

Спасибо.

Sam

ответ

3

Невозможно полагаться на клиента (javascript) для такого рода операций.

Вы сохраняете данные где-то на шаге 1, поэтому просто восстановите его.

1

Вы можете сохранить данные Страница 2 к базе данных, или кэш сервера памяти, или печенье или три, и восстановить его, когда страница загружена.

+0

О, я хочу сохранить данные страницы 1, а не данные 2. Мне не нужно сохранять данные в БД. Мне просто нужно кэшировать данные формы. Но некоторые браузеры не кэшируют их. –

+0

ну, вам нужно кэшировать его где-то - я подумал, что БД был относительно дешевым способом сделать это, поскольку (предположительно) вам нужно будет хранить эти данные в конце процесса отправки в любом случае. Редактирование ответа для расширения. –

1

Посмотрите на наличие скрытого iframe на странице для хранения данных. Я не уверен в специфике реализации этого, но это метод, который люди используют для хранения состояния страницы, когда хеш изменяется в URL. Проверьте, поддерживают ли некоторые библиотеки, такие как dojo и jquery, эту ситуацию.

1

ASP.NET делает это автоматически через ViewState (примечание: статья древняя, но все же довольно точно). Возможно, вы можете адаптировать аналогичный подход к Rails.

Смежные вопросы