Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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和php将json对象写入.json文件_Php_Javascript_Json - Fatal编程技术网

使用javascript和php将json对象写入.json文件

使用javascript和php将json对象写入.json文件,php,javascript,json,Php,Javascript,Json,我需要使用javascript和php将json对象写入.json文件。json对象似乎正确地存储了值,但php文件似乎没有运行,因此什么也没有发生 谢谢 我的javascript函数,单击按钮即可调用: function save_crime() { //json object, v1, v2, v3 etc are variables whose values are set in a different function var jsonObject = { "cr

我需要使用javascript和php将json对象写入.json文件。json对象似乎正确地存储了值,但php文件似乎没有运行,因此什么也没有发生

谢谢

我的javascript函数,单击按钮即可调用:

    function save_crime()
{
    //json object, v1, v2, v3 etc are variables whose values are set in a different function
    var jsonObject = { "crime" : {  "violence" : {  "violence1" : v1,
                                                    "violence2" : v2,
                                                    "violence3" : v3
                                    },

                                    "burglary" : {  "burglary1" : b1,
                                                    "burglary2" : b2
                                    },

                                    "robbery" :  {  "robbery1" : r1,
                                                    "robbery2" : r2
                                    },

                                    "criminal" : {  "criminal1" : c1,
                                                    "criminal2" : c2,
                                                "criminal3" : c3
                                    } 
                                } 
                    }



    //jQuery to post json object to json.php for writing to json file
    $.ajax({
        type : "POST",
        url : 'json.php',
        dataType : 'json', 
        data : {
            json : JSON.stringify(jsonObject)
        }
    });

}
用于写入.json文件的php文件:

<?php

$json = $_POST['json'];
$info = json_encode($json);

$file = "crimes.json";
$handle = fopen($file, 'w');
fwrite($handle, $info);
fclose($handle);

?>

您正在将JSON字符串写入文件,不需要解码,因为它已经是来自JS部分的字符串(
JSON.stringify(jsonObject)

直接写就行了

file_put_contents("crimes.json",  $_POST['json']);
最好从服务器获取响应,以便您知道操作已正确执行。使用
$.post
速记而不是
$.ajax

$.post(
    'json.php',
    {
        json : JSON.stringify(jsonObject)
    },
    function (data, textStatus, jqXHR){
    }
);

对数组进行编码。也许您需要首先解码从ajax请求接收到的内容?尝试向.ajax调用添加成功和错误回调函数。当它试图调用PHP文件时,他们应该会给你更多的信息。我尝试了file\u put\u contents方法,但它仍然没有做任何事情。@user1269902你如何确定它没有做任何事情?它没有做什么?创建crimes.json文件在一个可以写入的目录中创建该文件。例如,
/tmp
也不起作用。我认为我的javascript函数有问题。