2012-05-28 126 views
0
$.post("general.php", {/* some values */}, function(data){var id = data;}); 
alert(id); 

问题是,警报是空的。知道任何人为什么?以及如何解决它?谢谢。

回答

6

有2个问题:

  • 之一是,AJAX是异步和警报的Ajax回调,其中id变量被设定

  • 第二个是,之前执行变量不是全局的,它只在回调范围内可见

所以,我建议你声明变量global(如果你需要的话供以后使用):

var id;// in the global scope 

window.id = ''; 

而且你应该在回调执行的逻辑:

$.post("general.php", {/* some values */}, function(data){ 
    window.id = data; 
    alert(data); 
}); 
+0

是的,你说得对。但还有一个问题。如果您第一次运行此代码,则不起作用。第二次运作。这是第一个问题。如何解决它? – M1K1O

+0

它应该也是第一次工作。你可以从你的代码中弄出一个小提琴吗? –

+0

我无法制作小提琴,因为需要加载另一个文件。我认为这也应该是第一次工作,但是我可能有其他简单的错误。 – M1K1O