使用PHP和AJAX将数据写入文件不起作用 - php

我正在尝试使用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);
?>

参考方案

您使用的POST变量名称错误。首先,通过以下方式发送您的AJAX请求:

data: { 
    json: dataset
    },

然后使用:

$map = $_POST['json'];

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

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

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP PDO组按列名称查询结果 - php

以下PDO查询返回以下结果:$db = new PDO('....'); $sth = $db->prepare('SELECT ...'); 结果如下: name curso ABC stack CDE stack FGH stack IJK stack LMN overflow OPQ overflow RS…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

PHP:对数组排序 - php

请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…