2013-10-31 50 views
0

我有ddl(下拉列表)從另一個ddl的更改事件後從數據庫填充,但我想從數據庫填充它後更改此ddl的值。jQuery等待選擇從數據庫中填充

例子:

// This work very well 
$("#ddlGroups").on('change',function(){ 
    // Load data from database and populate ddlUsers 
    // response is loaded from database with $.ajax 
    // Query Example: SELECT User_ID, Username FROM tblUsers WHERE Group_ID = [Group_ID] (Just for undrestanding the question) 

    var Records = response.d; 
    $("#ddlUsers").empty(); 
    $.each(Records, function(){ 
    var _Key = this.User_ID; 
     _Value = this.Username; 
     $("#ddlUsers").append($("<option />").val(_Key).text(_Value)); 
    }); 
}); 

// When button clicked then trigger ddlGroups change event and assign select option from ddlUsers 
var _UserID = User_ID_From_Database; // Loaded from Database when button clicked 
$("#ddlGroups").trigger('change'); // Users are loaded from database based on group ID 
$("#ddlUsers").val(_UserID); // But this dosn't change 

如何或我是否ddlUsers加載不,我試圖在循環,但它永遠不會停止。

+0

你能更清楚嗎?也許向我們展示更多代碼? – melancia

+0

更改了所有問題。 –

+1

我認爲你的意思是['trigger'](http://api.jquery.com/trigger)而不是['tigger'](http://en.wikipedia.org/wiki/Tigger)。 – lonesomeday

回答

0

使用jquery,有兩種主要方法(實際上是相同的基礎)將ajax響應從數據庫連接到事件或UI結果。第一個是承諾,第二個是回調。這兩個都有100萬個例子,jQuery文檔相當強大。

在你的情況下,而不是「觸發」,你回調調用正確的功能。下面只是垃圾代碼顯示。

No: $("#ddlGroups").tigger('change'); 

Yes: 
//Your code 
$("#ddlGroups").on('change', updateDDL); 

//I have just externalized this function to a scope/place where both the ajax and on change line of code can reference it. 
function updateDDL(){ 

    var Records = response.d; 
    $("#ddlUsers").empty(); 
    $.each(Records, function(){ 
    var _Key = this.User_ID; 
     _Value = this.Username; 
     $("#ddlUsers").append($("<option />").val(_Key).text(_Value)); 
    } 
}; 

$.ajax(...., function (data) { 
// Update ddl, the existing function you have. 
// You should already have something like this. 
updateDDL(); //Like this 
}); 

BTW:您可以將數據傳遞到updateDDL直接使用$(本)在updateDDL改善它等,但未被關鍵你的問題/問題。看起來你對jQuery和它使用的一些Javascript特性很陌生。花一點時間來了解他們,你會得到回報。我會先閱讀關於ajax/jquery的示例,然後觀察如何更新DOM。

相關問題