2013-03-22 54 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); 
相关问题