我有一个使用 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/