在线等-选择第一个下拉框,第二个跟着刷新数据,实现联动刷新

问题描述

选择第一个下拉框,第二个跟着刷新数据,实现联动刷新
 <script type=""text/javascript"">var dirMap = new Map();var uppeakMap = new Map();var downpeakMap = new Map();var timeMap = new Map();$(function(){    debugger    init();    var data = ${data};    initEchart(data)    //切换方向下拉框    $(""#dirSelect"").change(function(){        var dirid = $(this).val();        debugger        var peakid = $(""#peaksetionSelect option:selected"").val();        debugger        createPeakSelect(dirMap.get(dirid));        getData(peakiddirid);    });    //切换峰段下拉框    $(""#peaksetionSelect"").change(function(){        var peakid = $(this).val();        var dirid = $(""#dirSelect option:selected"").val();        getData(peakiddirid);    });});function getData(peakiddirid){    debugger    var url = ""${ContextPath}/generic/workplan/flush?IntervalList=""+$.queryString(""IntervalList"")+&lineId=""+$.queryString(""lineId"")+""&categoryId=""+$.queryString(""categoryId"")+""&peaksetionId=""+peakid+""&dir=""+dirid;    var data = $.ajax({        url : url        async : false        type : ""POST""        data : {}        success: function(data){            debugger                if(data) {                    data = eval(""(""+data+"")"");                    initEchart(data);                }            }    });}function createPeakSelect(peakMap){    var selectPeak=$(""#peaksetionSelect"");//峰段下拉框    peakMap.each(function(peakid){        if(!dirRepeat(""peaksetionSelect"" peakid)){            var peakOption=$(""<option></option>"");            peakOption.val(peakid);            peakOption.text(peakMap.get(peakid));            selectPeak.append(peakOption);        }    });}function init(){    var IntervalList = $.queryString(""IntervalList"");    IntervalList=JSON.parse(IntervalList); //可以将json字符串转换成json对象     var selectObj = $(""#dirSelect"");//方向下拉框    var selectPeak=$(""#peaksetionSelect"");//峰段下拉框    for(var i =0 ;i<IntervalList.length;i++){        var peakid = IntervalList[i].PEAK_SECTION;//峰段id        var peakName=IntervalList[i].PEAK_SECTIONDESC;//峰段名称        var startTime=IntervalList[i].STARTTIME;//峰段开始时间//      alert(startTime);         var endTime=IntervalList[i].ENDTIME;//峰段结束时间        timeMap.put(peakidstartTime+""-""+endTime);        var dirid=IntervalList[i].OPM_DIRECTION;//双向id        var dirName = dirid==""0""?""上行"":""下行"";//方向返回0,表示是上行,否则下行        if(dirid==""0""){            debugger            if(!uppeakMap.containsKey(peakid)){                //?放峰段的起始时间吗                uppeakMap.put(peakidpeakName);            }            dirMap.put(diriduppeakMap);        }else{            debugger            if(!downpeakMap.containsKey(peakid)){                downpeakMap.put(peakidpeakName);            }            dirMap.put(diriddownpeakMap);        }        //去掉重复        if(!dirRepeat(""dirSelect""dirid)){            var dirOption = $(""<option></option>"");            dirOption.val(dirid);            dirOption.text(dirName);            selectObj.append(dirOption);        }        if(!dirRepeat(""peaksetionSelect"" peakid)){            var peakOption=$(""<option></option>"");            peakOption.val(peakid);            peakOption.text(peakName);            selectPeak.append(peakOption);        }    }    dirMap.each(function(dir){        dirMap.get(dir);    });}//去掉重复function dirRepeat(idvalue){    var returnValue = false;    $(""#""+id+"" option"").each(function(){        if($(this).val() == value){            returnValue = true;        }    });    return returnValue;}function initEchart(data){    debugger    var stationThro = eval(""(""+data.throughputMap+"")"").stationList;    var throughputList=eval(""(""+data.throughputMap+"")"").throughputList;    var pastThroughputList=eval(""(""+data.pastCapacityMap+"")"").pastThroughputList;    var stationRet=eval(""(""+data.retMap+"")"").stationList;    var countList=eval(""(""+data.retMap+"")"").countList;    var pastCountList=eval(""(""+data.pastTripsMap+"")"").pastCountList;    var stationApp=eval(""(""+data.approvalMap+"")"").stationList;    var approvalList=eval(""(""+data.approvalMap+"")"").approvalList;    var pastApprovalList=eval(""(""+data.pastApprovalMap+"")"").pastApprovalList;    var stationPun=eval(""(""+data.punctualityRateMap+"")"").stationList;    var punctualityRateList=eval(""(""+data.punctualityRateMap+"")"").punctualityRateList;    var pastPunctualityRateList=eval(""(""+data.pastPunctualityMap+"")"").pastPunctualityRateList;    var peakid = $(""#peaksetionSelect option:selected"").val();    var time = timeMap.get(peakid);    //为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需图表路径    <body><h3>运力、满意度分析</h3><div >        <select id=""dirSelect"" ></select>        <select id=""peaksetionSelect""></select> </div>

解决方案

你要做的就是一个二级联动,,直接给在第一个下拉框中change事件改变第二个下拉框的值就行了

解决方案二:
顶一个,二楼说的对,select绑定change事件,根据选中的值,去查第二个下拉框的数据,用ajax吧,很好玩的

解决方案三: <!-- /* * 说明:将指定下拉列表的选项值清空 * 作者:CodeBit.cn ( http://www.CodeBit.cn ) * * @param {String || Object]} selectObj 目标下拉选框的名称或对象,必须 */function removeOptions(selectObj){ if (typeof selectObj != 'object') { selectObj = document.getElementById(selectObj); } // 原有选项计数 var len = selectObj.options.length; for (var i=0; i < len; i++) { // 移除当前选项 selectObj.options[0] = null; }} /* * 说明:设置传入的选项值到指定的下拉列表中 * 作者:CodeBit.cn ( http://www.CodeBit.cn ) * * @param {String || Object]} selectObj 目标下拉选框的名称或对象,必须 * @param {Array} optionList 选项值设置 格式:[{txt:'北京' val:'010'} {txt:'上海' val:'020'}] ,必须 * @param {String} firstOption 第一个选项值,如:“请选择”,可选,值为空 * @param {String} selected 默认选中值,可选 */function setSelectOption(selectObj optionList firstOption selected){ if (typeof selectObj != 'object') { selectObj = document.getElementById(selectObj); } // 清空选项 removeOptions(selectObj); // 选项计数 var start = 0; // 如果需要添加第一个选项 if (firstOption) { selectObj.options[0] = new Option(firstOption ''); // 选项计数从 1 开始 start ++; } var len = optionList.length; for (var i=0; i < len; i++) { // 设置 option selectObj.options[start] = new Option(optionList[i].txt optionList[i].val); // 选中项 if(selected == optionList[i].val) { selectObj.options[start].selected = true; } // 计数加 1 start ++; } } //--> 解决方案四:
生成json数据导入页面,然后就是联动的问题了,demo:javascript省市联动示例

解决方案五:
无刷新下拉框

解决方案六:
太长 还不用代码编辑器

解决方案七:
太长,懒得看,说下思路吧。方法一:把两个下拉框的内容都查出来,放到浏览器缓存,点击第二个下拉框时根据第一个下拉框的内容进行过滤,下拉列表中就是你要的了。方法二:点击第二个下拉框时,把第一个下拉框的值当做参数去请求服务器,获得下拉值。方法三:跟方法二差不多,不过是在第一个选择值之后去更新第二个下拉框下拉列表内容

解决方案八:
把数据查出来放到list集合中,通过第一个下拉框的onchange=""XXX""事件。根据第一张表所选中的字段ID,来联动第个下拉列表的内容

时间: 2024-12-20 14:53:25

在线等-选择第一个下拉框,第二个跟着刷新数据,实现联动刷新的相关文章

jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑_jquery

例如"报告交付方式"包含固定交付时,第二个下拉框不可编辑,反之可以编辑,具体代码如下 报告交付方式: <select class="easyui-combobox" panelHeight="auto" style="width:195px" data-options="required:true,valueField:'id',textField:'text' , onSelect:function(){ v

js实现可输入可选择的select下拉框_javascript技巧

本文实例为大家分享了可输入可选择的select下拉框,供大家参考,具体内容如下 1.原理: 1.1将input输入框和select框合并在一起,但是显示出向下点击的按钮: 这种比较容易做到 1.2出现输入值能够自动匹配的功能 动态的加载一个临时的div出现在该input下方,当点击页面中的空白地方,div隐藏. 1.3代码: <!doctype html> <html lang="en"> <head> <meta charset="

我的echarts地图主题不能修改是怎么回事啊?点击下拉框时地图没效果,也不刷新??????

问题描述 我的echarts地图主题不能修改是怎么回事啊?点击下拉框时地图没效果,也不刷新?????? 解决方案 <!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts</title> <script> var myChart; function changeTheme(self){ //var te = require('echarts/theme

一个文本框,当输入一些字符后,通过ajax+jquery会从后台查到一些数据,当数据返回到页面上时,需要将文本框变成下拉框,下拉框中显示返回的数据,该怎么实现

问题描述 一个文本框,当输入一些字符后,通过ajax+jquery会从后台查到一些数据,当数据返回到页面上时,需要将文本框变成下拉框,下拉框中显示返回的数据,现在能得到数据,就是不知道怎么将原来的文本框变成下拉框 解决方案 解决方案二:做两个控件,根据情况隐藏一个,表示一个.document.getElementById("xxx").style.display="";//表示document.getElementById("xxx").styl

通过编程方式在InfoPath 2010表单的下拉框修改事件中获取数据

一个简单的例子,包括一段简短的代码,在InfoPath 2010表单中下拉框的修 改事件里从一个数据源获取数据. 表单 样例表单本身很简单,只有两个控件,如下图所示: 在mydropdown下拉框属性中,添加几个值,为将要获取的SharePoint列表中 已有的几个列表项的ID.

ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法_基础应用

DropDownList Web 服务器控件使用户能够从预定义的列表中选择一项.它与 ListBox Web 服务器控件的不同之处在于,其项列表在用户单击下拉按钮之前一直处于隐藏状态.另外,DropDownList 控件与 ListBox 控件的不同之处还在于它不支持多重选择模式. DropDownList在html中的呈现对应的是select,下面让我们来看一下DropDownList绑定数据的几种方法. 一.把Array数组绑到DropDownList 复制代码 代码如下: string[]

关于ie9不能选择下拉框的问题

问题描述 关于ie9不能选择下拉框的问题 ie9模式窗口下dropdownList不能使用,这是怎么回事?求大神指导一下. 大致的代码 在ie9的模式窗口下不能使用,但是在其他的浏览器中可以. 菜鸟我用f12调试下,修改了下id class或者删除,然后在页面中点击,居然可以使用,这是为什么?是ie9的bug还是代码的问题?如果是代码的为题那么在ie8 7,火狐上面都可以,就是在ie9上不行?求大神指教,指教,急急急. 相关文章 能不能让listview的单元格变成下拉框的形式? java we

freemarker list中有需要使用下拉框的数据

问题描述 freemarker list中有需要使用下拉框的数据 freemaker遍历list,我知道可以用<#list></#list>,但是如果这些数据里面有需要用到下拉框的属性,该如何写代码呢?比如list里面存了十个人的数据,每个人都有一个省份的信息,需要用到下拉框,这时候代码可以怎么写,求大神指导!! 解决方案 问题问的不是很清楚啊. 可以再详细一点吗? 解决方案二: <#list cmAllInfoDto.cmContactInfoList as c> 联

DataGridViewComboBoxColumn下拉框级联

问题描述 各位大侠帮帮忙,在Winform的datagridview中有两个DataGridViewComboBoxColumn下拉框,现在我想选择第一个下拉框中的一个值另个下拉框显示相对应的值出来.请问怎么做啊??很急拜托各位帮帮忙. 解决方案 解决方案二:这个都要写在datagridview的rowcommand事件里统一处理,给第一个下拉框一个commandName便于识别解决方案三:在winfrom程序中datagridview没有rowcommand事件啊