使用 select onchange 调用两个函数以传递变量


Calling two functions with select onchange to pass a variable

我使用函数createVariable()来创建变量$user_rank以在第二个函数getRank()中使用它。我使用下拉列表调用这两个函数:

<select name="rank" onchange="createVariable(this.value); getRank();">

创建变量()

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()返回用户 2 的信息(好),但函数getRank()返回用户 1 的信息。

谁能帮我解决这个问题?

可能是

由于在调用getRank()函数之前没有完成createVariable()ajax调用。所以getRank()获取旧数据。尝试使用异步假

function createVariable(user_id) {
$.ajax({
   type: "GET",
   url: "file1.php",
   async: false,
   data: "user_id=" + user_id,
   success: function(result){
       $("#TargetRank1").html(result);
   }
});

}