使用AJAX将数据发布到API中

时间:2018-01-08 13:09:18

标签: javascript php jquery ajax

我有一个使用AJAX与基于PHP的API通信的脚本。 第一部分加载交易历史:

$(document).ready(function () {
                var orders = $('#History ul');
                var user = "<?php echo $user; ?>";

                $.ajax({
                    type: "GET",
                    url: "api.php",
                    data: {
                        user: user
                    },
                    success: function (response) {
                        console.log(response);
                        var res = JSON.parse(response);
                        $.each(res, function (index, value) {
                            console.log(value);
                            if(value['PL']>=0){
                            orders.append("<li style=\"color:green;\">" + value['User'] + "</li>");
                        }else{orders.append("<li style=\"color:red;\">" + value['User'] + "</li>");}
                        });
                    }
                });

第二部分向数据库发布交易:

 $("#submit").click(function(){
                        //event.preventDefault();
                        var oPrice = newOrder.elements["oPrice"].value;
                        var cPrice = newOrder.elements["cPrice"].value;
                        var oType = newOrder.elements["oType"].value;;
                        var oSymbol = newOrder.elements["oSymbol"].value;
                        var oAmount = newOrder.elements["oAmount"].value;

                        var json ={
                            'user': user,
                            'oPrice': oPrice,
                            'cPrice': cPrice,
                            'oType': oType,
                            'oSymbol': oSymbol,
                            'oAmount': oAmount};

                        alert(JSON.stringify(json)); //---check zda je naplněný
                        $.ajax({
                            type: "POST",
                            url: "api.php",
                            data: json,
                            success: function (response) {
                                alert(response);
                            }
                        });
                    });

问题是,当我按下按钮并发送json时,它缺少'用户'数据,看起来像这样:

TraderBook.php?oPrice=1&cPrice=1&oType=LONG&oSymbol=1&oAmount=1

我不知道为什么ajax会排除它。 json变量填写了

2 个答案:

答案 0 :(得分:1)

我认为您的问题可能就在这里

$(document).ready(function () {
    var user = "<?php echo $user; ?>";

var是JS范围界定声明。因此,您将user值限制为仅由页面DOM加载完成触发的匿名函数。你应该做的是尝试在函数之外确定范围

var user; //global scope
$(document).ready(function () {
    user = "<?php echo $user; ?>";

这样,当您的$("#submit").click(function()触发时,就会有一个值输入您的脚本。

答案 1 :(得分:0)

我错误地检查了json中表单的错误数据。问题出在API内 - &gt; SQL命令中有一个制表符..

感谢大家的建议。