【问题标题】:Adding Objects to JSON file with JQuery使用 JQuery 将对象添加到 JSON 文件
【发布时间】:2015-08-17 10:57:05
【问题描述】:

我有一个非常简单的 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

另外,作为说明,我希望将文件更改为其他人也不仅仅是您或您的会话。

【问题讨论】:

  • 您有 JSON 文件或 JSON 对象吗?如果你有一个文件,你需要使用文件 IO 来读写,如果你的 JS 范围中有一个 JSON 对象,只需在数组中推送一个对象
  • @Wowsk 看看这个问答:goo.gl/tpKzXf
  • @NightOwlPrgmr 谢谢!这正是我想要的。

标签: php jquery json


【解决方案1】:

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

$.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,将其解析为可用的内容,添加属性,然后转换回字符串,并再次存储在文件中。

【讨论】:

  • 我更改了文件以使用您建议的 ajax 功能,还添加了一个 script.php 文件。但是当我转到页面:wowsk.org/addName 时,即使页面提醒我“成功”,当我按下提交时 PHP 文件也不会更新。是我做错了什么还是我有一个简单的拼写错误?
  • 确保您对文件的写入权限、路径和文件名正确等。您还可以通过向 ajax 函数返回不同的值来进行调试,以查看发生了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 2019-01-30
  • 2016-01-09
相关资源
最近更新 更多