4

我有一个带有一些输入字段的基本表单。我想在提交表单时将表单数据保存到 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');
       }
    });
 });

我想将此表单数据保存在我的本地文件中。请帮助我找到正确的方法。谢谢

4

3 回答 3

3

您需要将数据发布到一个简单的 php 文件...

就像url: 'story.php' 在那个php文件中创建一个'story.json'使用fopen并存储那个json

编辑:如果你想使用serialize()而不是使用这样的东西

data:{'mydata':$(this).serialize()}

并在 php 文件中

parse_str($_POST['mydata'],$newarray) ;

echo json_encode($newarray);
于 2012-10-28T09:09:03.243 回答
2

JavaScript 不能保存到文件,除非它是 FireFox 插件。

您所做的是发布一个表单(将其发送到网络服务器),然后让服务器端脚本处理它。

序列化不会将表单值转换为 JSON 字符串:

http://api.jquery.com/serialize/

当您使用 $.post 时,您必须在 $('form').submit(function() 中返回 false ,否则浏览器将为您提交表单。

提交表单是当您单击一个按钮并且整个页面变白片刻然后您获得一个新页面时。

Ajax ($.post, $.get, $.getJson ...) 是指您在不刷新页面的情况下向服务器发送信息。谷歌地图就是一个很好的例子。

于 2012-10-28T09:14:56.077 回答
0

在表单 jQuery 对象上调用 serialize 方法不会返回其数据的 JSON 表示。它返回其数据的查询字符串表示。如上所述,您将需要使用服务器端脚本来解释(和操作)发送的数据并将其作为 JSON 存储在文件中。

于 2012-10-28T09:12:33.537 回答