使用PHP和AJAX将数据写入文件无法正常工作

时间:2012-09-21 23:48:37

标签: php jquery ajax

我正在尝试使用AJAX和PHP将json数据保存到文件中,但生成的文件为空。为什么不起作用?

这是HTML:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script>

var dataset = {"value1": 2, "value2": 1000};

$.ajax({
   url: 'save.php',
   type: 'POST',
   data: dataset,
   success: function() {
      alert('Success');
   }
});

</script>
</body>
</html>

save.php:

<?php 
$map=json_decode($_POST['json_string']);
$file = "test.json"; 
$fh = fopen($file, 'w') or die("can't open file");
fwrite($fh, $map);
fclose($fh);
?>

2 个答案:

答案 0 :(得分:2)

您使用了错误的POST变量名称。首先,发送您的AJAX请求:

data: { 
    json: dataset
    },

然后使用:

$map = $_POST['json'];

不要解码它,因为您要保存JSON字符串,而不是数组。如果您想要PHP表示,请更好地使用var_export()

$map = var_export(json_decode($_POST['json'], true), true);

答案 1 :(得分:0)

将此行$map=json_decode($_POST['json_string']);更改为$map=json_decode($_POST['dataset']);