2016-12-16 37 views
0

重复提问告诉我们如何使用ajax/post调用。我的问题是如何使用匿名函数返回的数据。如何使用post(jquery)返回的数据

我正在使用jquery POST方法从mysql获取一些数据。电话是:

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
    qdata=JSON.parse(xdata); 
}); 

这是工作正常,我得到我所需的数组,qdata。

所以,我可以访问Q数据,如果我执行以下操作:

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
    qdata=JSON.parse(xdata); 
    alert(qdata[0][0]); 
}); 

Q数据是2- d阵列140点的行和的值都在那里

但如果我尝试使用Q数据外部这篇文章,qdata出现'undefined'。例如

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
    qdata=JSON.parse(xdata); 
}); 
alert(qdata[0][0]); 

如果我把警报置于通话之外,我什么也得不到。

我该如何解决这个问题?

+1

的[?我如何返回从一个异步调用的响应(可能的复制http://stackoverflow.com/questions/14220321/how-do-i-return-the-异步回应) –

回答

1

你的问题是,qdata只存在于你的函数的作用域中。

要么instatiate的Q数据变量的函数

var qdata

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
     qdata=JSON.parse(xdata); 
}); 

外或让我们说你想这个数据传递给做了与它的另一个功能。你可以这样做:

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
     qdata=JSON.parse(xdata); 
     myFunction(qdata); 
}); 

function myFunction(data){ 
alert(data[0]); 
} 
+0

即使他在外面搞定了qdadata也不重要amigo – 2016-12-16 16:08:19

+0

有意思详细说明吗? – Brad

+0

你说过'要么在函数外部创建qdata变量',要么'或者说你想通过这个...... blahblah'。前者不是必需的或事项,或将改变任何结果。后者是正确的答案 – 2016-12-16 16:13:22