微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用PHP保存JSON本地文件的Ajax POST

我试图将数据从输入添加到Actors.json本地文件.这是文件结构:

[
  {
  "FirstName": "Ricardo",
  "Id": 1,
  "LastName": "Darin"
  },
  {
  "FirstName": "Bruce",
  "Id": 2,
  "LastName": "Willis"
  }
]

这是输入:

<table>
    <tr>
        <td>Id:</td>
        <td><input type="text" id="ID" /></td>
    </tr>
    <tr>
        <td>First name:</td>
        <td><input type="text" id="FirstName" /></td>
    </tr>
    <tr>
        <td>Last name:</td>
        <td><input type="text" id="LastName" /></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="button" value="ADD" onclick="AddActor()" /></td>
    </tr>
</table>

这是我的addActor函数

function AddActor(){
            $.ajax({
                url: 'save.PHP',
                method: 'POST',
                dataType: 'json',
                data: JSON.stringify({'FirstName': $('#FirstName').val(),
                    'Id': $('#ID').val(),
                    'LastName': $('#LastName').val()}),
                success: function () {alert("Thanks!"); },
                error: function() {alert("Error!");}
            });
    }

但是我不知道在save.PHP文件中放什么,并尝试了几种方法,但没有保存actor.

解决方法:

名称属性添加到表单:

<table>
    <tr>
        <td>Id:</td>
        <td><input type="text" id="ID" name="ID" /></td>
    </tr>
    <tr>
        <td>First name:</td>
        <td><input type="text" id="FirstName" name="FirstName" /></td>
    </tr>
    <tr>
        <td>Last name:</td>
        <td><input type="text" id="LastName" name="LastName" /></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="button" value="ADD" onclick="AddActor()" /></td>
    </tr>
</table>

更改AddActor()函数

function AddActor(){
        $.ajax({
            url: 'save.PHP',
            method: 'POST',
            data: $('input').serialize(),
            success: function(result) {alert("Thanks!"); },
            error: function(result) {alert("Error!");}
        });
}

$().serialize将格式化所有输入字段,如查询字符串(name = val& name1 = val1格式).

在save.PHP中:

<?PHP

    // Adjust the actual location of the file relative 
    // to the location of the PHP script
    $json_str = file_get_contents('Actors.json');

    // Convert json string to PHP array
    $json_arr = json_decode($json_str, true);

    // Make sure this variable is set in case Actors.json is empty
    if(!$json_arr) {
        $json_arr = array();
    }

    // Add new data
    $json_arr[] = $_POST;

    // Encode back to json string and save
    $json_str_done = json_encode($json_arr);
    file_put_contents('Actors.json', $json_str_done);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐