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

时间:2016-01-22 07:11:46

标签: php jquery ajax

我使用函数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 的信息。

任何人都可以帮我吗?

1 个答案:

答案 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);
   }

});

}