【问题标题】:Sending an array from javascript to php and then save as .json将数组从 javascript 发送到 php,然后另存为 .json
【发布时间】:2017-01-18 14:39:12
【问题描述】:

问题

我正在向 PHP 发送一个数组,然后创建一个 data.json 来存储它。 确实创建了 data.json,但输出为 Null。

我确定我做错了什么,但我不知道是什么。我一直盯着这段代码大约 2 个小时,在这里查看了很多关于 SO 的已回答问题,但没有任何效果。

我可以用一双新的眼睛来看待这件事。我是编程新手,尤其是 webdev,所以我提前道歉。

提前致谢!

我发送给 PHP 的数组

[
  {
    "mainTitle": "workplace",
    "mainImage": "dog.png"
  },
  {
    "objAudio": "1.mp3",
    "objImage": "1.png",
    "objText": "Number 1",
    "objLocation": {
      "X": 49,
      "Y": 127
    }
  },
  {
    "objAudio": "2.mp3",
    "objImage": "2.png",
    "objText": "Number 2",
    "objLocation": {
      "X": 124,
      "Y": 117
    }
  }
]

AJAX

$.ajax({
    type:"POST",
    url:"toJSON.php",
    data: {data : jsonString},
    cache: false,
    succes: function(){
        console.log("Saved!");
    }
});

PHP

$superArray = $_POST['data'];
$path  = "json/data.json";
file_put_contents($path, $superArray));

【问题讨论】:

  • var_dump($_POST);它包含什么?
  • jsonString 是如何创建的?
  • 您没有在此过程中进行任何检查,并且 success 在您的 ajax 中拼写错误。在发送之前记录您的 jsonString,在您的 php 中转储/记录您的 POST 数据,并检查 file_put_contents 的返回值。
  • 最简单的方法是检查控制台,然后检查 XHR 请求,看看请求是什么样的以及响应是什么。同样@aynber 注意到你拼错了“成功”功能。

标签: javascript php arrays json ajax


【解决方案1】:

首先,您需要确保您的jsonStringjson 格式。然后试试这个:

JAVA 脚本

$.ajax({
      type: 'POST',
      url: 'toJSON.php',
      data: {json: JSON.stringify(jsonString)},
      dataType: 'json'
}).done( function( data ) {
    console.log('sent');   
})
.fail( function( data ) {
       console.log('fail');
});

PHP

result = json_decode($_POST['json']);
var_dump(result);

现在如果你想把它保存到你的文件中:

$path  = "json/data.json";
file_put_contents($path, json_encode($_POST['json']));

Serialize 喜欢:

file_put_contents($path, serialize($_POST['json']));

【讨论】:

  • 谢谢你修复它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 2017-06-17
  • 1970-01-01
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多