2015-11-23 191 views
0

我有兩個下拉菜單,如客戶和company.my客戶下拉列表的客戶名單。基於選擇的客戶,我必須填充company.I從公司獲得公司的詳細信息作爲JSON字符串對象的後端。如何刷新我的下拉菜單基於另一個下拉菜單

第一次當我選擇客戶它顯示該特定客戶相關的公司信息。

我的問題是 seconed時間,我選擇另一個客戶(在變化),但它顯示老客戶公司的詳細信息和目前選定的客戶公司詳細信息。我只希望公司的客戶數據下降。

這是我的代碼。 關於客戶的選擇我得到的結果(公司名單)。

<script language="JavaScript"> 
function getcompanyNames(result){ 
    var data = JSON.parse(result); 
    $.each(data, function(key, value) 
    { 
     $("#companydetails").append("<option>" + value.environments_name + "</option>"); 
    }); 

} 

我的下拉菜單中有這些選項。

hcl - dev 
ibm - test 
infosys -pro 
ibm-pro 
ec- -test 

我的要求是,如果我的選項包含親然後給優先爲選項。而dev爲第二優先級和測試是第三優先級。

如何爲我的選項設置優先級..

+3

爲什麼'java'標記? –

+0

您是否檢查過哪個值作爲參數傳遞?因爲我懷疑當你第二次打電話時,它只是第一次通過選定的值。所以你需要確保你只傳遞當前選定的值。你可以顯示你的onChange事件的JavaScript代碼? –

回答

0

填充新的數據之前,請務必清除下拉。

empty() | jquery referrence

$("#companydetails").empty(); 
+0

@mvswetha不要忘記接受答案,這有助於你解決你的問題。 –

+0

如何接受答案 – mvswetha

0

試試這個:

function getcompanyNames(result){ 
    var data = JSON.parse(result); 
    $("#companydetails").html(''); 
    $.each(data, function(key, value) 
    { 
     $("#companydetails").append("<option>" + value.environments_name + "</option>"); 
    }); 
    $("#companydetails").selectmenu("refresh", true); 
} 
+0

如何設置我的下拉選項的優先級。 – mvswetha

+0

優先順序將按您添加的順序進行。 –

+0

如何爲我的選項數據添加自定義優先級。上面我提到了我的下拉值和優先級,能否清楚地告訴我 – mvswetha

0

$( 「#」)追加( '...');將附加新的公司名單以及您的舊數據。在選擇另一個客戶時,您應該清除舊列表,然後追加新列表。

使用下面的代碼。

<script language="JavaScript"> 
function getcompanyNames(result){ 
var data = JSON.parse(result); 
$("#companydetails").html(''); 
$.each(data, function(key, value) 
{ 
    $("#companydetails").append("<option>" + value.environments_name + "</option>"); 
}); 
} 

如果您正在尋找進行排序根據您的期權價值的文字,所以你可以使用類似下面。因爲你的排序是基於文本,也不是按字母順序,所以這是你的替代。

var data = JSON.parse(result); 
var sortedData = $.merge([], $.grep(data, function (item) { return item.environments_name.toLowerCase().indexOf("pro") > -1; })); 
sortedData = $.merge(sortedData, $.grep(data, function (item) { return item.environments_name.toLowerCase().indexOf("dev") > -1; })); 
sortedData = $.merge(sortedData, $.grep(data, function (item) { return item.environments_name.toLowerCase().indexOf("test") > -1; })); 
$("#companydetails").html(''); 
$.each(sortedData , function(key, value) 
{ 
    $("#companydetails").append("<option>" + value.environments_name + "</option>"); 
}); 
+0

如何爲我的下拉選項設置優先級。 – mvswetha

+0

如果你正在尋找排序,然後去上面的代碼。 –