使用PHP脚本保存JSON会使文件空白

时间:2014-07-24 11:28:17

标签: javascript php json

我使用这个PHP脚本将一些JSON数据保存到JSON文件中:

<?php
$myFile = "json/countries.json";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $_POST["data"];
fwrite($fh, $stringData);
fclose($fh)
?>

使用此JS函数将数据发送到PHP脚本:

saveJson(countries, '/save_countries_to_json.php');

function saveJson(object, file) {

$.ajax
({
    type: "POST",
    dataType : 'json',
    async: false,
    url: file,
    data: { data:object },
    success: function () {alert("Thanks!"); },
    failure: function() {alert("Error!");}
});
}

但唯一发生的事情是我尝试保存数据的JSON文件已清空。

如果我改变

data: { data:object },

data: { data:jQuery.parseJSON(object) },

我得到了

  

Uncaught SyntaxError:意外的令牌A

&#39; A&#39;代表什么?

如果有人知道什么是错的,请分享你的智慧:)

谢谢!

1 个答案:

答案 0 :(得分:0)

在你的php文件中试试这个

<?php
$myFile = "json/countries.json";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = urldecode($_POST["data"]);
$stringData1 = json_encode(json_decode($stringData));
fwrite($fh, $stringData1);
fclose($fh)
?>

在js文件中添加

saveJson(countries, '/save_countries_to_json.php');

function saveJson(object, file) {

$.ajax
({
    type: "POST",
    dataType : 'json',
    async: false,
    url: file,
    data: { data:object },
    success: function () {alert("Thanks!"); },
    failure: function() {alert("Error!");}
});
}