将数组从javascript发送到php,然后另存为.json

时间:2017-01-18 14:39:12

标签: javascript php arrays json ajax

问题

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

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

我可以用一双新眼睛。我对编程很熟悉,尤其是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));

1 个答案:

答案 0 :(得分:0)

首先,您需要确保jsonString格式为json。然后试试这个:

JAVA SCRIPT

$.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']));

OR Serialize喜欢:

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