将$ .get中的响应存储在稍后使用的变量中

时间:2013-03-22 18:40:22

标签: jquery variables get store

我正在使用$ .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 个答案:

答案 0 :(得分: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;
             }); 

答案 1 :(得分:0)

您需要确保可以在原始呼叫范围之外访问分配。

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

问题是:您何时或在何种范围内需要此数据?

简单地说,你可以把它放在窗口的范围之内。虽然把所有东西都放在全球范围内是不好的做法,但这会让你知道把它放在哪里。

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

现在,在分配后,只需window.getstategetstate即可使用。

答案 2 :(得分: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代码完成后再处理

之后的行

答案 3 :(得分:0)

最佳解决方案是使用

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