2016-01-22 27 views
0

我使用函數createVariable()創建變量$user_rank以在第二個函數getRank()中使用它。使用select onchange調用兩個函數來傳遞變量

<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()的信息。當我再次使用它並選擇用戶2時,函數createVariable()返回用戶2的信息(良好),但功能getRank()返回用戶1的信息

任何人都可以幫助我嗎?

+0

getRank'需要得到'createVariable'值的函數' - 從'success'回調中在'createVariable' – RamRaider

+0

@RamRaider調用它。謝謝。我想過,但這兩個功能不在同一個文件中。 –

回答

2

可能是由於createVariable()ajax調用在getRank()函數被調用之前未完成。所以getRank()獲取舊數據。嘗試使用異步虛假

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

}); 

}

+0

非常感謝。它的工作原理,但我注意到,在het顯示數據之前,dropdown會凍結一點點。 有沒有另一種方式來做到這一點? –