我有一个关于多个ajax调用的简单问题,按顺序执行每个调用。我有一个按钮发布当前页面的表单(将表单值写入会话),然后我想在设置这些会话变量后调用另一个页面(GET)。
问题是,我在一个函数中运行了两个调用,如果第一个帖子没有及时完成,那么会话值就不会出现在另一个脚本上了。
这是我按钮的功能:
function generateFP() {
$.post("test.php", $("#webcto_form").serialize());
loadPage('getpage.php?page=fpreq','page_contents');
}
我的loadPage函数:
function loadPage(filename,id){
$("#page_contents").load(filename);
}
是否可以将速记ajax($ .post / .load)与成功结合使用?我想在成功提交表单后更改我的generateFP以调用loadPage函数。
我已经看过标准的$ .ajax文档,解释了如何构建成功函数,但还没有使用我正在使用的语法找到任何信息。
答案 0 :(得分:4)
jQuery Post方法允许成功处理程序(http://api.jquery.com/jQuery.post/):
function generateFP() {
$.post("test.php", $("#webcto_form").serialize(), function(){
loadPage('getpage.php?page=fpreq','page_contents');
});
}
或者,您可以修改test.php脚本以返回第二次请求后的信息:
function generateFP() {
$.post("test.php", $("#webcto_form").serialize(), function(data){
console.log(data);
});
}
其中data
是test.php脚本的输出。
答案 1 :(得分:2)
这对你有用。您将在成功事件处理函数中调用loadPage函数。
function generateFP() {
$.post("test.php", $("#webcto_form").serialize(), function(data){
//this is the success callback function
//data parameter holds the response returned from the post if you need it.
loadPage('getpage.php?page=fpreq','page_contents');
});
}