我有一些带有输入字段的基本表单。我想在提交表单时将表单数据保存到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');
}
});
});
我想将此表单数据保存在我的本地文件中。 请帮我找到正确的方法。感谢
答案 0 :(得分:3)
您需要将数据发布到一个简单的php文件...
赞url: 'story.php'
在那个php文件中使用fopen
创建一个'story.json'并存储该json
编辑:如果你想使用serialize()
而不是像这样使用某些
data:{'mydata':$(this).serialize()}
并在php文件中
parse_str($_POST['mydata'],$newarray) ;
echo json_encode($newarray);
答案 1 :(得分:2)
除非是FireFox插件,否则JavaScript无法保存到文件中。
您所做的是发布表单(将其发送到网络服务器),然后让服务器端脚本处理它。
Serialize不会将表单值转换为JSON字符串:
http://api.jquery.com/serialize/
当你使用$ .post时,你必须在$('form')中返回false。submit(function()或浏览器会为你提交表单。
提交表单是指您点击一个按钮,整个页面会变白并暂时显示,然后您会看到一个新页面。
Ajax($ .post,$。get,$。getJson ...)是指您在不刷新页面的情况下向服务器发送信息的时间。 Google地图就是一个很好的例子。
答案 2 :(得分:0)
在表单jQuery对象上调用serialize方法不会返回其数据的JSON表示。它返回其数据的查询字符串表示。如上所述,您需要使用服务器端脚本来解释(和操作)已发送的数据,并将其作为JSON存储在文件中。