javascript - 使用 AJAX 将数据发布到 API

标签 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变量已经填好了

最佳答案

我想你的问题可能出在这里

$(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() 触发时,就有一个值可以输入到您的脚本中。

关于javascript - 使用 AJAX 将数据发布到 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48150980/

相关文章:

javascript - xmlHTTPrequest 不会打开 ("GET", url, true);我很生气! PHP

php - echo 不显示

jquery - 复选框 css/jquery 样式更改

javascript - 相当于 Javascript 中 python 的范围

javascript - 如何将 new Map() 字符串化?

javascript - 使用ajax向服务器发送数据的问题

javascript - 如何打印 html 代码以便我只写一次?

jquery - 保持子菜单打开

javascript - 在 Ubuntu 16 服务器上运行使用 Firebird 的 nodejs 应用程序

javascript - 为什么 system.js 返回一个空对象而不是 angularjs?