使用jquery将表单数据保存到本地json文件中

时间:2012-10-28 09:05:42

标签: javascript json forms jquery

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

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

3 个答案:

答案 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存储在文件中。