使用JQuery将对象添加到JSON文件

时间:2015-08-17 10:57:05

标签: php jquery json

我有一个非常简单的JSON文件叫做json.php:

[ { "name":"wowsk" } ]

我希望我网站的访问者能够将对象添加到数组中。我坚持的是,如何允许他们添加它。我有一个HTML文件,正文如下:

<form id="addName">
    <input id="name" placeholder="Enter your name.">
    <button id="addNameButton" type="submit">Submit</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
    function addName() {
        var input=document.getElementById("name").value;
        $.ajax({
        url: "json.php",
        type: 'POST',
        data:  {"name":"hello"}
    })
}
$("#addNameButton").click(function() {addName()}) 
</script>

该页面不会向该文件添加另一个对象,我也尝试过使用PUT,但这也不起作用。我是否无法使用JQuery将对象添加到文件中,或者我只是在使用该函数时出错?我已经研究了好几天了,却找不到任何帮助。

感谢您的帮助,
Wowsk

另外,作为一个说明,我想要不仅仅是你或你的会话,还要为其他人更改文件。

1 个答案:

答案 0 :(得分:2)

你需要一个添加到JSON文件的实际PHP脚本,它不会神奇地发生。

$.ajax({
    url  : "script.php",
    type : 'POST',
    data :  {"name":"hello"}
});

然后在script.php你会做类似

的事情
<?php

    $content = file_get_contents('json.php');

    $json    = json_decode($content, true);

    $json["name"] = $_POST["name"] || "";

    $str     = json_encode($json);

    file_put_contents( 'json.php', $str );

?>

这真的很冗长,但要说明一点,你必须得到JSON,将其解析成可用的东西,添加属性,然后转换回字符串,然后再次存储在文件中。