在我不断努力理解哈希标签和页面导航的过程中,如果用户使用浏览器导航按钮(例如,后退和前进),我会遇到重新提交表单数据的障碍。
我使用表单数据的函数如下:
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;
});
}
如果表单仍然可见,这会很好地工作,例如,如果我使用分页,它会按我预期的方式执行。
我的问题是当用户单击浏览器的后退按钮(表单现已删除)然后单击浏览器的前进按钮时。事件被触发,但我的序列化表单数据现在为空。有什么方法可以缓存表单数据,以便我可以继续调用它吗?
有什么想法吗?
最佳答案
您最好的选择(我认为)是将序列化数据存储在 cookie 中。当用户返回他/她已经填写过的页面时,从 cookie 中检索数据,反序列化,并将其放回原处。
使用 Cookie 相当简单,在 quirksmode 上有一个不错的跨浏览器实现来读/写 cookie:
或者如果您更喜欢使用插件:
关于php - 我可以保存序列化的表单数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6961650/