基本上我想要保存一个从$ .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;
}
}
所以当到达最后一篇文章(最后一页)时,我应该检查具有从getLastPage()函数返回的值的lastpage变量。
我用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');
}
首先运行该函数暂时将值存储在隐藏的输入标记(lastpage)中,然后再次获取该值,以便在我单击前进按钮时进行检查。
如果你们都有更合适的方式,请告诉我。
答案 0 :(得分:3)
您应该像这样更改代码:
$.post("getInfo.php",{ last: "yes" },
function(data){
functionToRunAfterYouHaveDataSometimeLater(data.last);
}
,'json');
整体方法的问题在于使用AJAX,您正在处理异步操作。这意味着function(data) { }
部分未运行,之后运行,因此您的return
实际上不会返回任何内容,它将是undefined
而不是这种方法,你需要调用$.post()
然后调用依赖于这些数据的任何函数作为$.post()
回调的一部分继续。完成后,您的代码顺序如下所示:
$.post()
执行,向服务器发出请求$.post()
运行后的其余代码