2014-10-02 129 views
0

我试图使用jquery GET功能从外部页值加载到变量存储在变量

var cbname = $.get('/getname.php','name='+item.f); 
alert(cbname); 

但警告它带给我的object object

谁能值指导什么是最好的办法做到这一点:

+1

它返回一个承诺对象 – 2014-10-02 17:03:23

+0

尝试console.debug(cbname),看看它包含[如何返回从Ajax响应 – 2014-10-02 20:28:02

+0

可能重复调用? ](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – dave 2014-10-02 21:50:57

回答

0
var cbname; 

$.get('/getname.php','name='+item.f, function(data) { 
    cbname = data; 
    alert(cbname); 
}); 

要使用成功的回调。

如果你不想使用回调,而是希望有一个同步调用:

jQuery.ajax({ 
    url: '/getname.php?name='+item.f, 
    success: function(data) { 
     cbname = data; 
    }, 
     async: false 
}); 

alert(cbname); 

还要注意的是,如果item.f没有网址安全,您需要使用

'/getname.php?name='+encodeURIComponent(item.f) 

代替

+2

很确定你会从这里得到'undefined'。 'alert'也需要在回调中。 – dave 2014-10-02 17:09:56

+0

家伙,如果我使用上面并将警报置于回调之外,它给了我'对象对象',我如何在外部使用它。 – voyeger 2014-10-02 18:56:07

+0

已更新用于同步功能(SJAX而不是AJAX) – Lotus 2014-10-02 19:35:21

0

如果您正在Web请求,不采取简单的办法,迫使你的程序同步运行,而是开始思考像一个AJAX编程:不是想“我需要一个个功能在返回一个值时,“一位AJAX程序员认为,”我需要一个函数,只要我有它就可以执行某个值。“

你想要的东西,像下面这样:

$.get('/getname.php','name=' + item.f, myCallback); 

function myCallback(cbname) { 
    alert(cbname); 
}