Javascript从ajax函数传递变量

时间:2015-02-27 21:22:25

标签: javascript jquery ajax json

我是学习者,我遇到了问题。首先我做了一个变量。然后使用ajax函数我有一个json数据。然后我解析它并尝试将json数据传递给名为 var invoice_details 的变量。然后点击事件我试图看到变量,但只显示 0 。但我的console.log(parsed);命令在ajax函数下显示我的控制台日志中的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); 

})

1 个答案:

答案 0 :(得分:4)

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

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

invoice_details = parsed;