使用jquery post更新.json文件到php文件

时间:2014-04-02 12:49:47

标签: php jquery ajax json

我是PHP编程的新手,我试图用PHP到.json文件实现以下结构;

{

  "1": {
    "number": "4",
    "color": "black"
  },
  "2": {
    "number": "0",
    "color": "green"
  }

}

我想做的是,当我使用" add.php"发布数据时文件。它将更新.json文件,如下所示;

{

  "1": {
    "number": "4",
    "color": "black"
  },
  "2": {
    "number": "0",
    "color": "green"
  },
  "3": {
    "number": "12",
    "color": "red"
  }


}

"号码"和"颜色"将来自我使用jQuery从index.php发布的帖子;

$('#add_outcome').on('submit',function (e) {    
    e.preventDefault();

    $.ajax({
        url: 'add.php',
        cache: false,
        type: 'POST',
        data : {
            "number" : $('#add_outcome select').val(),
            "color" : $('#add_outcome #color_info').val()
        },
        success: function(json) {
            console.log("Done, data sent");             }
    });
});

是否可以使用PHP更新此类结构?如果不能计算下一个" ID"在我的例子中是1,2,3等(通过提交增加)我可以从索引PHP发布数据。

现在最重要的是熟悉如何用PHP更新这种结构。

JSON数据来自文件,它的路径是" json / outcome.json"

2 个答案:

答案 0 :(得分:1)

将此代码添加到add.php文件

<?php
$json_array = json_decode(file_get_contents('json/outcome.json'), true);

$json_array[] = array('number' => $_POST['number'], 'color' => $_POST['color']);
file_put_contents('json/outcome.json', json_encode($json_array));
?>

答案 1 :(得分:0)

试试此代码

<?php
$file = json_decode(file_get_contents('path/to.json'), true);
//do whatever you want as $file is now an array
$file[] = array('number' => 12, 'color' => 'red');
file_put_contents('path/to.json', json_encode($file));