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;
                 }); 
4

4 回答 4

5

只需在 .get 调用本身之外声明要设置的变量。那么它将可以在您想要将其设置为返回数据的回调函数内部访问。

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;
             }); 
于 2013-03-22T18:53:56.553 回答
0

您需要确保可以在发起呼叫的范围之外访问分配。

如果getstate未在 get 请求之外声明,则它将不可用于以后的调用。

问题是:您何时或在什么范围内需要这些数据?

简单地说,你可以把它放在窗口的范围内。尽管将所有内容都放在全局范围内是不好的做法,但这会让您知道将其放在哪里。

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

现在,在它被分配后的任何时候,它都可以通过其中一个window.getstate或只是getstate.

于 2013-03-22T18:49:01.197 回答
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 语句中。
或者,您可以以某种方式让它等到结果返回并且 $.get 代码完成后再处理之后的行

于 2016-06-27T05:26:07.783 回答
0

最好的解决方案是使用

setTimeout(function(){
            console.log('outside $.get: ' + $HTML);
}, 100);
于 2017-02-04T19:53:06.750 回答