Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript从ajax函数传递变量_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Javascript从ajax函数传递变量

Javascript从ajax函数传递变量,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我是一个学习者,我面临着一个问题。首先我做了一个变量。然后通过ajax函数,我得到了一个json数据。然后我解析它,并尝试将json数据传递给名为var invoice\u details的变量。然后,通过单击事件,我试图查看变量,但它仅显示0。但是我的console.log(已解析)命令,在我的控制台日志上显示json数据。但是console.log(发票详细信息)在我的操作功能上显示0。我怎么了 //function order started var invoice_details; fu

我是一个学习者,我面临着一个问题。首先我做了一个变量。然后通过ajax函数,我得到了一个json数据。然后我解析它,并尝试将json数据传递给名为var invoice\u details的变量。然后,通过单击事件,我试图查看变量,但它仅显示0。但是我的
console.log(已解析)命令,在我的控制台日志上显示json数据。但是
console.log(发票详细信息)在我的操作功能上显示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); 

})

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

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

invoice_details = parsed;

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

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

invoice_details = parsed;