我使用函数createVariable()
创建变量$user_rank
以在第二个函数getRank()
中使用它。
我使用下拉列表调用这两个函数:
<select name="rank" onchange="createVariable(this.value); getRank();">
createVariable()
function createVariable(user_id) {
$.ajax({
type: "GET",
url: "file1.php",
data: "user_id=" + user_id,
success: function(result){
$("#TargetRank1").html(result);
}
});
}
seconde函数(在file1.php
中)使用此变量$user_rank
getRank()
function getRank(){
$.ajax({
type: "GET",
url: "file2.php?user_rank=<?php echo $user_rank; ?>",
success: function(result){
$("#TargetRank2").html(result);
}
});
};
问题
当我第一次使用下拉菜单并选择user1
时,我只获得函数createVariable()
中的信息。当我再次使用它并选择user2时,函数createVariable()
返回user2的信息(Good),但函数getRank()
返回 user1 的信息。
任何人都可以帮我吗?
答案 0 :(得分:2)
可能是由于createVariable()ajax调用未在调用getRank()函数之前完成。所以getRank()获取旧数据。尝试使用async false
function createVariable(user_id) {
$.ajax({
type: "GET",
url: "file1.php",
async: false,
data: "user_id=" + user_id,
success: function(result){
$("#TargetRank1").html(result);
}
});
}