2013-05-02 52 views
-1

你好,我已經搜索了整個網站的soltution發現了一些東西,但沒有得到它的工作。jquery Javascript變量

- 我在頁面的頭部區域有主要功能。 (這將返回來自PHP的數據)

-This數據我需要作爲一個變量,但不知道如何處理。

function note(content,usern){ 
note = Function(""); 
    $.ajax({ 
    type: "POST", 
    url: "note.php", 
    data: {'token': content, 'user': usern }, success: function(data){ var myneededvar = data; }, }); } 

確定這就是作品也給出的數據是從 現在即時調用這樣

note(token,notename); 

在腳本的功能,我需要的結果myneededvar

,但不能讓它開始工作。

回答

1

首先,您的變量myneededvar是成功處理程序函數的局部變量,並且不會在外部提供。其次,你的AJAX調用是異步的,你不能期望在AJAX調用語句之後立即獲得AJAX返回數據。

即,你不能做:

note(...); // call your method 
alert(myneededvar); // this won't work as the AJAX call wouldn't have completed 

第三,不知道爲什麼你有note = Function("");聲明那裏。你應該刪除它。

像這樣的東西應該工作:

var myneededvar; 
function note(content, usern){ 
    $.ajax({ 
     type: "POST", 
     url: "note.php", 
     data: {'token': content, 'user': usern }, 
     success: function(data){ 
      myneededvar = data; 
      // use it here or call a method that uses myneededvar 
     } 
    }); 
} 
+0

開什麼玩笑必須有一個解決方案,與變量在PHP中的任何地方在現場工作等。 – 2013-05-02 02:28:17

+0

不是,變量在JS中是函數範圍。當然,除非它們在全球範圍內首先聲明(如答案中所述),否則你不能像PHP那樣「全局化」它們。 – techfoobar 2013-05-02 02:31:12

+0

看到這個:http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/ – techfoobar 2013-05-02 02:32:37