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

前端之家收集整理的这篇文章主要介绍了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;
            }
        }
@H_301_7@

因此,当到达最后一个帖子(最后一页)时,我应该检查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');
    }
@H_301_7@

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

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

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

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

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

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

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

原文链接:https://www.f2er.com/jquery/531024.html

猜你在找的jQuery相关文章