首先让我来描述一下这个场景。假设用户在我的网站中填写表单。表格可能包含大约14个字段。现在完成7场后,他/她错误地回去或关闭窗口或重新启动电脑。
现在当他/她回来的时候有办法向他展示7个字段已经填满了吗?现在有三种情况需要处理:
从主页面返回 关上窗户 重启电脑。
所有这些可能都没有解决方案。如果只有1和2的情况可以处理,那很好。
我知道会话,但到目前为止,我知道在会话中保存一些东西,你需要提交网站或刷新,这不是我的重要案例。
所以我需要一个很好的方法来做到这一点?
实际上,我的网站将在每种表单中托管大约20-40个字段。因此,如果用户关闭标签或返回,则为用户进行恢复非常重要。
答案 0 :(得分:1)
您还可以每隔x秒设置一次会话VIA ajax。这样您就可以消除刷新页面以保存会话值的问题。
setInterval(function(){
$.post("/ajaxLogin.php",{
value: $("#value").val()
},
function(result){
console.log('saved!');
});
}, 2000);
这是通过ajax
调用的ajaxLogin.php<?php
session_start();
$_SESSION['value'] = $_POST["value"];
?>
答案 1 :(得分:1)
在网络世界中,通常要做的是在Cookie或会话中保存数据。 Cookie存储在用户的计算机上,直到其到期日期为止,而会话通常具有更短的时间跨度(通常取决于服务器的会话时间)。
一种方法,如果用户可以离开并稍后返回(即使在重新启动后),则将其保存到cookie中。您可以在PHP中使用setcookie,并序列化数据。
示例:
setcookie("UserFormData", serialize($_POST), time()+3600); /* expire in 1 hour */
答案 2 :(得分:0)
你可以使用Ajax将数据保存到会话......你不需要刷新..你可以在每个字段更新或任何你想要的时候进行ajax调用..ajax调用不需要等待表单提交..它可以在每个按键/键盘上触发(虽然不推荐)
答案 3 :(得分:0)
您可以创建creates/updates a cookie的onchange函数。你可以为每个输入设置一个特定的cookie,假设你正在使用PHP和我提供的链接中的函数:
<input type="text" name="username" onchange="SetCookie('username',this.value,1);" value="<?=$_COOKIE['username'];?>" />
这似乎非常乏味,可能有更好的解决方案......