使用 jquery 将表单数据保存到本地 json 文件中
Posted
技术标签:
【中文标题】使用 jquery 将表单数据保存到本地 json 文件中【英文标题】:Save form data into local json file using jquery 【发布时间】:2012-10-17 22:30:00 【问题描述】:我有一个带有一些输入字段的基本表单。我想在提交表单时将表单数据保存到 json 文件中。 json文件中保存的数据格式应该是这样的。
[
"title":"some text","description":"some text","info":"some text","username":"some name",
"title":"some text","description":"some text","info":"some text","username":"some name",
"title":"some text","description":"some text","info":"some text","username":"some name"
]
我尝试使用此代码执行此操作,但我的“story.json 文件”中没有保存任何数据
$('form').submit(function()
$.ajax(
type: 'POST',
dataType: 'json',
url: 'story.json',
data: $(this).serialize(),
success: function(data)
alert(data.message);
,
failure: function (data)
alert('Please try again');
);
);
我想将此表单数据保存在我的本地文件中。 请帮助我找到正确的方法。谢谢
【问题讨论】:
我会说,除非你擅长配置你的 http 服务器,否则你需要一种服务器端语言,你有吗? 您可以将支持它的浏览器保存到 localStorage 而无需服务器...这是一个可行的解决方案吗? 是的,没有服务器端语言是不可能的。这就是答案。谢谢 【参考方案1】:您需要将数据发布到一个简单的 php 文件...
喜欢url: 'story.php'
在该 php 文件中使用 fopen
创建一个“story.json”并存储该 json
编辑:如果你想使用 serialize()
而不是使用这样的东西
data:'mydata':$(this).serialize()
在php文件中
parse_str($_POST['mydata'],$newarray) ;
echo json_encode($newarray);
【讨论】:
ok..那么如何使用 .serialize() 或 .serializeArray() 方法将上述格式的表单数据保存在 json 对象中。【参考方案2】:javascript 无法保存到文件,除非它是 FireFox 插件。
您所做的是发布一个表单(将其发送到网络服务器),然后让服务器端脚本处理它。
序列化不会将表单值转换为 JSON 字符串:
http://api.jquery.com/serialize/
当你使用 $.post 时,你必须在 $('form').submit(function() 中返回 false ,否则浏览器会为你提交表单。
提交表单是当您单击一个按钮时,整个页面会变白片刻,然后您会得到一个新页面。
Ajax ($.post, $.get, $.getJson ...) 是指您在不刷新页面的情况下向服务器发送信息。谷歌地图就是一个很好的例子。
【讨论】:
【参考方案3】:在表单 jQuery 对象上调用 serialize 方法不会返回其数据的 JSON 表示。它返回其数据的查询字符串表示。如上所述,您将需要使用服务器端脚本来解释(和操作)发送的数据并将其作为 JSON 存储在文件中。
【讨论】:
以上是关于使用 jquery 将表单数据保存到本地 json 文件中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript 或 jquery 将 html 表单数据保存到 sql db [关闭]
jquery easyui combobox如何动态加载.json数据