来自请求的数据

时间:2014-01-09 11:20:56

标签: jquery post global

var pload = function(ctrl, func){
    var dataa;
    $.post("/index.php/"+ctrl+"/"+func,{}, function(data){
    dataa = data;
    });
    return dataa;
};

var bind = function(hashtag, ctrl, func, div){
    $(document).on("click", "a[href="+hashtag+"]", function() {
            var body = pload(ctrl, func);
             alert(body);
            $(div).html(body);
    })
}

如何在全球范围内获取数据?我想要,pload从帖子请求中返回数据。但是我在alert()

中得到了“ undefined

3 个答案:

答案 0 :(得分:2)

尝试使用回调。

function pload(ctrl, func,callback){
    $.post("/index.php/"+ctrl+"/"+func,{}, function(data){
        callback(data);
    });
};

var bind = function(hashtag, ctrl, func, div){
    $(document).on("click", "a[href="+hashtag+"]", function() {
        pload(ctrl, func,function(body){
            alert(body);
            $(div).html(body);
        });             
    })
}

答案 1 :(得分:0)

这是:

var pload = function(ctrl, func){
    var dataa;
    $.post("/index.php/"+ctrl+"/"+func,{}, function(data){
    dataa = data;
    return dataa;
    });

};

答案 2 :(得分:0)

您没有获得任何值,因为$.post是异步的,并且在收到值之前不会暂停程序。

您应该将数据处理部分移动到异步调用返回其结果时将调用的函数。

var pload = function(ctrl, func){
    var dataa;
    $.post("/index.php/"+ctrl+"/"+func,
      {}, 
      //this function will be called when $.post receives its response
      function(data){
        alert(data);
        $(div).html(data);
      });
    return dataa;
};