2011-04-28 40 views
1

我試圖在通過Ajax調用某些PHP代碼的函數內設置變量。問題在於變量不能從函數外部訪問,所以可以這麼說。如何訪問Ajax調用中設置的變量

var startPageSelected = ''; 

function getSavedStartPage() { 
    $.post(webroot + 'home/get_saved_startpage/', 
    function(data){ 
     startPageSelected = $.parseJSON(data); 
     alert(startPageSelected); //alert 1 
    }); 
} 

function something() { 
    alert(startPageSelected); //alert 2 
} 

所以,當我打電話getSavedStartPage的「警報1」給我正確的值,但此之外像在我的例子「警報2」,變量保持爲空。我想它與範圍和/或異步ajax的東西有關,但我不知道如何存儲我的ajax數據,以便我可以在以後從外部訪問它。也許有人可以幫助我呢?

+1

由於範圍的原因,我認爲它不可訪問*您可能在AJAX調用完成之前以及在設置變量之前調用something() – andrewtweber 2013-09-11 16:37:58

回答

0

您可以將您的數據作爲參數傳遞給您的函數。

function getSavedStartPage() { 
    $.post(webroot + 'home/get_saved_startpage/', 
    function(data){ 
     startPageSelected = $.parseJSON(data); 
     alert(startPageSelected); //alert 1 
     something(startPageSelected); 
    }); 
} 

function something(data) { 
    alert(data); //alert 2 
}