我需要使用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);
?>
答案 0 :(得分:1)
您正在将 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){
}
);