如何基于另一个下拉菜单刷新我的下拉菜单 [英] how to refresh my dropdown based on another dropdown

查看:76
本文介绍了如何基于另一个下拉菜单刷新我的下拉菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个下拉菜单,例如customer和company.my客户下拉菜单中有客户列表.基于客户的选择,我必须填充公司.我将从后端获取公司详细信息作为JSON字符串对象. >

第一次选择客户时,它会显示与客户相关的特定公司信息.

我的问题是 在第二时间,我选择了另一个客户(更改时),但是该客户显示了旧客户公司的详细信息,并显示了所选客户公司的详细信息.我只希望显示我公司的客户数据.

这是我的代码. 在选择客户时,我会得到结果(公司名称列表).

<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是第二优先级,而test是第三优先级.

如何为我的选项设置优先级.

解决方案

$(#").append('...');会将新公司列表与您的旧数据一起添加.在选择其他客户时,您应该清除旧列表,然后追加新列表.

使用以下代码.

<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>");
});

I have two dropdowns like customer and company.my customer drop down having list of customers .Based on select of customer, I have to populate the company.I am getting the company details from backend as a JSON String Object.

first time when I select customer it displaying the that perticular customer related company information.

My Problem is seconed time, I select another customer(on change) but its displaying old customer company details and present selected customer company details. I want only present customer data on my company drop down.

This is my code. On selection of customer I am getting result(company name list).

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

} 

My drop down has these options.

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

My requirement is if my option contains the pro then give first priority for that options .and dev is second priority and test is 3rd priority.

How to set priority for my option..

解决方案

$("#").append('...'); will append new companies list along with your old data. On Selecting another customer you should clear old list then append new list.

Use below code.

<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>");
});
} 

If you are looking for sorting based on your option value text so you can use something like below. since your sorting is based on text and also not in alphabetical order so this is an alternate for you.

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>");
});

这篇关于如何基于另一个下拉菜单刷新我的下拉菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆