2011-02-04 46 views
0

我使用这个功能在jQuery脚本:返回值

function recogerEventos(id) { 
    var respuesta = $.ajax({ 
     type: 'GET', 
     url: 'eventos.php', 
     data: 'cmd=recoge&id='+id, 
     success: function(data) { 
     //alert(data); 

      return data; 
     }, 
     error : function() { 
      return false; 
     } 
    }).responseText; 
    //alert("asdfksjfhajk"+respuesta); 
    return respuesta; 
} 

如果我取消警报(数据),它显示了返回的字符串值,但是当我取消了警报(“asdffksd ... “)它只显示随机字母,不再需要,我需要发送此'respuesta'值来获取其他文档中的字符串。

如果有人知道如何得到它,请给我解释一下,我很绝望

感谢所有,卡洛斯

+1

重复的[Javascript - 本地作用域对象不能从嵌套函数访问](http://stackoverflow.com/questions/4891491/javascript-local-scope-objects-not-accessible-from-nested-function)(The唯一不同的是,警报停止了返回语句表单的命中,直到单击“确定”,并给出了响应时间返回,但解决方案仍然是相同的)。 – Quentin 2011-02-04 11:40:12

回答

0

的替代方法是设置async选项设置为false,它允许你将数据直接从调用返回ajax。例如。

var respuesta = $.ajax({ 
    url: 'eventos.php', 
    async: false, 
    ... 
}).responseText; 

这种方法的不足之处在于它会在等待请求完成时阻止浏览器。

2

你应该提供一个回调函数到recogerEventos功能。所以你可以在ajax请求完成时调用它。

function recogerEventos(id, callback, errorcallback) { 
    var respuesta = $.ajax({ 
     type: 'GET', 
     url: 'eventos.php', 
     data: 'cmd=recoge&id='+id, 
     success: callback, 
     error : errorcallback 
    }); 
} 

或者你也可以做直接在RecogerEventos更新:

$.ajax({ 
    url: "test.html", 
    cache: false, 
    success: function(html){ 
    $("#results").append(html); 
    } 
+0

uhm,recogerEventos,发送一个由另一个函数获取的字符串,用于在加载的javascript文件上写入文本 – Brookete 2011-02-04 11:49:59