0

我在我的应用程序中使用主干,我正在尝试使用主干方法更新 json 文件。这里的保存方法是网站http://dalydd.com/projects/backbone/backbone.html

这是我的 js 这工作正常

 var ModalInfo = Backbone.Model.extend({
defaults: {
  person:'',
  occupation:'',
  home:'',
},
url:'sample.php',
});

 var developer = new ModalInfo();
developer.toJSON();
 developer.save({person:'madan', occupation:'developer', home:'middtown'}, {
wait:true,
success:function(model, response) {
console.log('Successfully saved!' + model + response);
},
 error: function(model, error) {
console.log(model.toJSON());
console.log('error.responseText' +model);
}
});

这是我的 sample.php 中的 php 我正在尝试获取 json.js 的内容,将其解码为我的新数据,然后对其进行解码并将其作为响应返回

 <?php

 $json_data = json_decode(file_get_contents('json.js'), true);
 for ($i = 0, $len = count($json_data); $i < $len; ++$i) {
      //do the right logic
 }
 file_put_contents('json.js', json_encode($json_data));
 $final_data = file_get_contents('json.js', json_encode($json_data));
 echo $final_data;
 echo(var_dump($_POST));
 ?>

当我尝试回显超级全局帖子时,我得到 array(0)

我希望有人可以帮助我解决我的 php 问题,以及为什么当我在骨干网中使用 .save 方法时无法提取 sample.php 中的任何帖子数据 - 当我回显服务器请求方法时,它表明我只想发布帖子获取发布数据并将其写入文件然后返回它我是否以错误的方式进行此操作 - 任何帮助表示赞赏 - 我一直在为此绞尽脑汁。我的第一步只是弄清楚为什么我无法获得任何发布数据,即使当我加载页面时萤火虫告诉我它正在发布 - 你也可以检查

4

1 回答 1

1

您的问题的答案在于,除非您发布表单编码的数据,否则$_POSTPHP 不会填充超全局。您需要获取原始发布的输入。你可以这样做:

$json_data = json_decode(file_get_contents('php://input'));

You can actually use any of the various PHP file input methods here (i.e fopen/fread, file (useless in this context), etc.) . However the above will probably be the easiest if you are not going to be dealing with large chunks of JSON input to the point where memory management becomes more of a concern.

于 2012-12-24T23:32:52.403 回答