如何通过Cookie存储和重新加载动态表单
How to store and reload a dynamic form via cookies?
我有一个表单,用户可以向其中添加行。提交该表单时,我需要将这些值存储在cookie中,以便在页面刷新或用户离开网站返回时重新加载表单。我已经得到了从javascript构建的表单,并且正在寻找某种能够自动存储和重新加载表单的js或php工具,包括dya=namic生成表单。
谢谢!
似乎您应该能够使用jquery内置的表单序列化程序,然后将其保存在cookie中。
//here's a little helper function to set a cookie
function setCookie(key, value, daysUntilExpiration) {
var expiration = new Date();
expiration.setTime(expiration.getTime()+(daysUntilExpiration*86400000));
document.cookie = key + "=" + value + ";expires=" + expiration.toGMTString() + ";path=/";
}
//first, get the serialized data from your dynamic form
var formData = $("#myform").serialize();
//then, save it into a cookie
setCookie("myform", formData, 30); //cookie saved for 30 days
要将其拉回来,您应该能够简单地在键/值上进行拆分,并将"="作为拆分字符,然后循环遍历每个键/值,构建表单HTML。
您可以使用PHP的setcookie()函数来保存这些。以下是一些简单的函数,可以执行您想要的操作。但是,这只适用于具有值的输入。它将不适用于选择。请确保每个输入都有不同的名称,否则这将不起作用。
function SaveAll() {
$cookie_expires = 14; // how many days until the cookies expire
foreach($_POST as $col => $val) {
setcookie("form_".strtolower($col), $val, time()+(64000 * $cookie_expires));
}
}
function Load($item) {
$item = strtolower($item);
if(!$_COOKIE['form_'.$item]) return null;
return $_COOKIE['form_'.$item];
}
if($_POST['submit_button_name']) {
SaveAll();
echo "All inputs have been saved! <BR><BR>";
}
然后简单地将这样的内容添加到您的所有输入中。
<input name="Item01" value="<?=Load('Item01');?>" />
相关文章:
- UIWebview赢得't通过基本身份验证加载动态加载的资源(通过jQuery mobile)
- 我们可以加载动态角度对话框吗
- 使用JQuery在遗留html中加载动态AngularJS
- 谷歌地图在angularjs中懒惰加载动态地理坐标更新
- 正在加载动态日历以在一个月的正确日期开始
- 从服务器和/或客户端加载动态元素的典型技术是什么
- 如何加载动态更改的css文件
- jQuery 时间选取器未加载动态文本字段
- 如何在Highslide中加载动态生成的iframe
- 有没有办法避免角加载动态构建页面时的抖动效应
- 加载动态添加的输入字段
- 用于加载动态 JSON 数据的 JQuery 移动事件
- 手控表未加载动态创建的列标题
- 如何在 ag-grid 中从 http 调用加载动态列和行(列和记录都应该是动态的)
- Jquery 在 Firefox 中的自定义对象参数(动态导航加载动态内容)
- 延迟加载动态驱动器内容选项卡
- Angular JS ui-router - 加载动态视图和动态控制器
- 防止在引导选项卡中加载动态连续网络两次
- 使用 nodejs 加载动态 html
- 如何在 XSLT 中加载动态内容时创建函数