Javascript从ajax函数传递变量

标签 javascript jquery ajax json

我是一名学习者,我面临一个问题。首先我做了一个变量。然后使用 ajax 函数我得到了 json 数据。然后我解析它并尝试将 json 数据传递给名为 var Invoice_details 的变量。然后,通过单击事件,我尝试查看该变量,但它仅显示0。但我的 ajax 函数下的 console.log(parsed); 命令显示控制台日志上的 json 数据。但我的操作函数上的 console.log(invoice_details); 显示 0。我这是怎么了?

//function order started
var invoice_details;
function order(val1){
var order_no=getQueryVariable("order_number");
//AJAX START    
    $.ajax({
        url: "/anamika/function/order.php",
        type: "POST",
        data: {item_code: item_added, paymentdetails: val1, order_no: order_no }, 
        success:function(data, textStatus, jqXHR)
        {
                //console.log(data);
                var parsed = JSON.parse(data);
                var invoice_details = parsed;
                console.log(parsed);

        },//Success finished
        error:function(jqXHR, textStatus, errorThrown)
        {

        } //Error finished
    }) //AJAX FINISHED

}
//function order finished

order('91');

$("#invoice_pay").live("click", function (event) {
            console.log(invoice_details); 

})

最佳答案

当您在 success 回调中声明 var Invoice_details = parsed; 时,您实际上是在创建一个新的局部变量,该变量仅存在于 success 的范围内 回调,因此这个新的局部变量正在获取您的数据,而不是您随后执行 console.log 的全局数据。

您已经在外部定义了该变量,因此只需删除 var 声明并执行以下操作:

invoice_details = parsed;

关于Javascript从ajax函数传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28774514/

相关文章:

javascript - CoffeeScript,=> 和 -> 有什么区别

javascript - 如果 ASP.NET 中的 href 为空,则禁用 anchor 标记

javascript - 如何使用 JQuery 将 div 放置在鼠标单击旁边?

javascript - 同一页面中的多个按钮提交到Ajax

javascript - 检索 php 变量中的 javascript 变量

javascript - React Navigation Bottom TabBar 图标间距

javascript - 没有为 Handlebars 传递上下文

javascript - 如何使用 jquery 检测移动设备键盘上是否按下回车键?

php - 使用 session 变量时,Ajax 请求后数百个 Apache 进程挂起

javascript - 无法从extjs ajax接收post参数