Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Javascript Can';t通过PHP编辑JSON数组_Javascript_Php_Json_Ajax_Post - Fatal编程技术网

Javascript Can';t通过PHP编辑JSON数组

Javascript Can';t通过PHP编辑JSON数组,javascript,php,json,ajax,post,Javascript,Php,Json,Ajax,Post,所以我想通过PHP在json文件中编辑n个关联数组中的一个项。newcontent和索引来自一个javascript,它通过POST将它们发送到此php文件。 JSON文件如下所示: [{"title":"This is a title","content":"foo bar","date":"Friday 25th May 2018 10:52:01 PM"}] 而PHP: <?PHP if (isset($_POST['newcontent']) && isset(

所以我想通过PHP在json文件中编辑n个关联数组中的一个项。newcontent和索引来自一个javascript,它通过POST将它们发送到此php文件。 JSON文件如下所示:

[{"title":"This is a title","content":"foo bar","date":"Friday 25th May 2018 
10:52:01 PM"}]
而PHP:

<?PHP
if (isset($_POST['newcontent']) && isset($_POST['index'])) {
 $data = file_get_contents("news.json"); 
 $decoded = json_decode($data); 

 $index = $_POST['index'];
 $newcontent = htmlspecialchars($_POST['newcontent']);
 $newdate = date('l jS F Y h:i:s A');
 $decoded[$index]["content"] = $newcontent;
 $decoded[$index]["date"] = $newdate;

 $output = json_encode($decoded);
 file_put_contents("news.json", $output);
 }
?>

因此,这应该做的是通过索引值在json中选择正确的数组元素。然后将“content”键的值更改为从POST获得的$newcontent,将“date”键的值更改为$newdate。然后将其写回json文件“news.json”。但它只是不想编辑文件。它没有给我一个错误,只是什么也没做。该文件保持不变。我在控制台上进行了检查,邮件工作正常


编辑:在进一步测试之后,我发现条件isset($\u POST['newcontent']没有返回true,因此代码的其余部分实际上没有运行

您需要使用可选的第二个参数来
json\u decode()
,这样它将创建关联数组而不是对象

$decoded = json_decode($data, true);

您需要使用可选的第二个参数来
json\u decode()
,这样它将创建关联数组而不是对象

$decoded = json_decode($data, true);

向我们展示JSON文件。还有,你为什么要这样做?看起来你在这里编写自己的数据库。你看过使用或其他数据库吗?这就是JSON文件的样子[{“title”:“this is a title”,“content”:“foo bar”,“date”:“2018年5月25日星期五10:52:01 PM”}]我用php从这个数组中删除元素没有问题,但编辑它们会给我带来问题。我为什么要这样做?我主要是个python爱好者,想了解javascript和php。把它添加到你的问题中。同时添加你正在尝试做的事。我感觉你正在尝试使用数据库。给我们看看JSON文件。Also、 你为什么要这样做?看起来你在这里写你自己的数据库。你有没有考虑过使用或其他数据库?这就是JSON文件的样子[{“title”:“this is a title”,“content”:“foo bar”,“date”:“Friday May 25th 2018 10:52:01 PM”}]我用php从这个数组中删除元素没有问题,但编辑它们会给我带来问题。我为什么要这样做?我主要是个python爱好者,想了解javascript和php。把它添加到你的问题中。同时添加你正在尝试做的事。我感觉你正在尝试使用数据库。谢谢你的回复。不幸的是,它没有什么区别。
$index
的值是多少?
var\u dump($decoded[$index]);
显示了什么?谢谢你的回复。不幸的是,它没有区别。
$index
的值是多少?
var\u dump($decoded[$index]);
显示了什么?