PHP-将参数从$.post()回调传递给外部变量

基本上我想拥有一个从$.post()调用中检索值的参数,如下所示:

init = function(){          
var lastpage = getLastPage();
}

        function getLastPage(){
            $.post("getInfo.php",{ 
                last: "yes"
            },function(data){
                setLast(data.last);
            },'json');

            return function setLast(data){
                return data;
            }
        }

因此,当到达最后一个帖子(最后一页)时,我应该检查lastpage变量,该变量具有从getLastPage()函数返回的值.

我对javascript指针和所有内容都感到迷惑.请帮助大家.

更新(20/4/2010):

我已经做了另一种方法,像这样:

init = function(){            
  getLastPage();
  if((page+1) == $("#lastpage").val()){
     alert("this is last post");
  }else{
     page++;
     //get info and display to the page here
  }
}
     function getLastPage(){
        $.post("getInfo.php",{ 
            last: "yes"
        },function(data){
            $("#lastpage").val(data.last);
        },'json');
    }

首先运行该函数以将值临时存储在隐藏的输入标签(最后一页)中,然后每当我单击前进按钮时再次获取该值以进行检查.

如果你们都有更合适的方法,请告诉我.

最佳答案
您应该像这样更改代码:

$.post("getInfo.php",{ last: "yes" },function(data){ 
    functionToRunAfterYouHaveDataSometimeLater(data.last); 
  },'json');

总体方法的问题在于,使用AJAX,您正在处理异步操作.这意味着function(data){}部分然后不会运行,而是稍后运行,因此您的return实际上不会返回任何东西,它将是未定义的.

代替这种方法,您需要调用$.post(),然后调用依赖于此数据的任何函数以继续作为$.post()回调的一部分.完成之后,您的代码顺序如下所示:

> $.post()执行,向服务器发出请求
> $.post()运行后的其余代码
>稍后,当响应来自服务器并且您有数据时,将执行回调
>现在继续处理您需要的数据

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...