使用javascript和php将json对象写入.json文件
我需要使用javascript和php将json对象写入.json文件。json对象似乎正确地存储了值,但php文件似乎没有运行,因此什么也没有发生 谢谢 我的javascript函数,单击按钮即可调用:使用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
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函数有问题。