Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用JQuery向JSON文件添加对象_Php_Jquery_Json - Fatal编程技术网

Php 使用JQuery向JSON文件添加对象

Php 使用JQuery向JSON文件添加对象,php,jquery,json,Php,Jquery,Json,我有一个非常简单的JSON文件,名为JSON.php: [ { "name":"wowsk" } ] 我希望我的网站的访问者能够将对象添加到阵列中。但我一直坚持的是,如何允许他们添加它。我有一个HTML文件,正文如下所示: <form id="addName"> <input id="name" placeholder="Enter your name."> <button id="addNameButton" type="submit">S

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

提交
函数addName(){
var输入=document.getElementById(“名称”).value;
$.ajax({
url:“json.php”,
键入:“POST”,
数据:{“name”:“hello”}
})
}
$(“#addName按钮”)。单击(函数(){addName()})

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

谢谢你的帮助,
Wowsk

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

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

您有JSON文件还是JSON对象??如果你有一个文件,你需要使用文件IO来读写,如果你的JS作用域中有一个JSON对象,只需在array@Wowsk看看这个问答:@NightOwlPrgmr谢谢!这正是我想要的。我更改了文件以使用您建议的ajax函数,并添加了一个script.php文件。但是,当我转到以下页面:wowsk.org/addName时,当我按submit时,PHP文件不会更新,即使页面提示我“成功”。是否有我做错了什么,或者我有一个简单的拼写错误?请确保您对文件有写权限,路径和文件名正确无误等。您还可以通过向ajax函数返回不同的值来进行调试,以查看发生了什么。