2013-03-22 53 views
4

我正在使用$ .get獲取php的響應,但是如何將響應存儲在變量中以便稍後在代碼中使用它?謝謝!

$.get('promo_getstate.php', { 
      email: emailaddress, 
      country: 'DE', 
      lang: lang, 
      source: '1304_Spring_dly' 
       }, function (data) { 
        console.log('data is' + data); 
        getstate = data; 
       }); 
+0

使用它在回調 – Esailija 2013-03-22 18:41:12

+0

我很確定你已經在getstate任務中完成了這個任務。它不工作? – tjameson 2013-03-22 18:43:20

+0

無法正常工作,如何在回撥中使用它? – user1937021 2013-03-22 19:15:37

回答

5

只是聲明要設置外部不用彷徨調用自身的變量。那麼它將在您想要將其設置爲返回數據的回調函數內部進行訪問。

var getstate = ""; 
$.get('promo_getstate.php', { 
     email: emailaddress, 
     country: 'DE', 
     lang: lang, 
     source: '1304_Spring_dly' 
      }, function (data) { 
       console.log('data is' + data); 
       getstate = data; 
      }); 
+0

不起作用,我需要以某種方式返回getstate? – user1937021 2013-03-22 19:14:16

+0

當你說不起作用...那是什麼意思?你的控制檯說什麼,有錯誤嗎?請求實際上是否觸發?我所做的只是複製您的get方法調用並在範圍外聲明該變量。這會回答你的問題,但如果這些東西不能正常工作,那很可能是因爲你正在使用.get錯誤 – iAmClownShoe 2013-03-22 19:48:18

+0

抱歉,但是當我console.log變量getstate時,它的值顯示爲無 – user1937021 2013-03-22 19:57:15

0

您需要確保可以在原始呼叫範圍之外訪問分配。

如果getstate沒有在獲取請求之外聲明,那麼它將不能用於以後的調用。

問題是:什麼時候需要這個數據?

簡單地說,你可以把它放在窗口的範圍內。雖然把所有東西都放在全球範圍內是不好的做法,但這會讓你知道放在哪裏。現在

console.log('data is' + data); 
window.getstate = data; 

,它的分配之後的任何時間,它會通過兩種window.getstate或只是getstate可用。

0

嘗試存放在變量的$.get()

var myVar = $.get('promo_getstate.php', { 
       email: emailaddress, 
       ......... 
      }); 
+0

我必須把回報或什麼?該myVar的價值出來[對象對象] – user1937021 2013-03-22 19:10:25

0

$ .get的工作方式是瀏覽器仍在獲取數據,同時它也處理$ .get之後的行。

$document.ready(function() { 
    var $HTML=""; //global variable 
    $(".button").click(function(event){ 
     console.log('before $.get: '); 
     $.get('form1.html #form1', function(data){ 
      $HTML = data; 
      console.log('inside $.get: ' + $HTML); 
     }); 
     console.log('outside $.get: ' + $HTML); 
}); 

所以解決的辦法是,所有需要$ .get值的代碼都應該放在get語句中。
或者,你能以某種方式把它等到結果返回和$不用彷徨代碼後

0

最好的解決辦法處理線之前完全是用

setTimeout(function(){ 
      console.log('outside $.get: ' + $HTML); 
}, 100); 
相關問題