Могу ли я сохранить данные сериализованной формы? - PullRequest
1 голос
/ 05 августа 2011

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

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

if(page == "/visits_results") {

    $('#start').val(start);

    $.post("visits_results.php", $("#profile_form_id").serialize(),
    function(data) {
        $('#search_results').html(data);
        location.href = "#visits_results=" + start; 
    });
}

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

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

Есть мысли?

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Лучше всего (я думаю) было бы сохранить сериализованные данные в файле cookie.Когда пользователь возвращается на страницу, которую он / она уже заполнил, извлекает данные из файла cookie, снимает их сериализацию и помещает обратно туда, где он принадлежит.

С файлами cookie довольно просто работать, естьхорошая кросс-браузерная реализация для чтения / записи файлов cookie в режиме quirksmole:

или если вы предпочитаете использовать плагин:

1 голос
/ 05 августа 2011

Вы можете довольно легко сохранить данные, используя localStorage как http://jsfiddle.net/zDPjm/

0 голосов
/ 05 августа 2011

Ну, конечно, вы можете сделать что-то очень простое, например:

if ($("#profile_form_id").serialize() != "") serializedFormData = $("#profile_form_id").serialize();
$.post("visits_results.php", serializedFormData, /* Rest of Code */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...