在一个jsp页面实现二级下拉框联动,实时读取数据库数据

合集下载

android客户端二级下拉框级联操作

android客户端二级下拉框级联操作

android客户端⼆级下拉框级联操作在项⽬中,为了提⾼⽤户的体验效果,我们会⽤到级联操作,在android中关于下拉框的级联操作,我们可以使⽤Spinner。

关于Spinner,来⾃官⽅⽂档是这样介绍的:A view that displays one child at a time and lets the user pick among them. The items in the Spinner come from the associatedwith this view。

简⽽⾔之就是is a widget similar to a drop-down list for selecting items.这次项⽬中的需求是这样的,⽤户选择⼀个城市,⼆级下拉框⾃动获取该城市下的所有区/县,下⾯分布讲解。

1. 对于android应⽤程序⽽⾔,布局时是不可缺少的,很重要,就在第⼀点来讲,采⽤两个LinearLayout布局,第⼀个LinearLayout采⽤垂直⽅向总体布局,第⼆个LinearLayout采⽤⽔平⽅向对说明信息进⾏⼦节点布局View Code2. 这⾥主要在Activity中对布局⽂件进⾏操作。

1. 对⼀些信息的声明://市区/⼦菜单项信息private String[][] areaData = CityCountry.areaData;private ArrayAdapter<CharSequence> adapterArea = null;//spinner城市private Spinner mCity = null;//spinner县区private Spinner mCountry = null;2. 获得Spinner对象:// spinner下拉列表框⼆级菜单级联mCity = (Spinner) super.findViewById(R.id.city);mCountry = (Spinner) super.findViewById(R.id.area);3. 注册Spinner setOnItemSelectedListener监听事件:mCity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3){// 表⽰选项改变的时候触发MppspPhoneAlarmAct.this.adapterArea = new ArrayAdapter<CharSequence>(MppspPhoneAlarmAct.this,// 定义所有的列表项yout.simple_spinner_item, MppspPhoneAlarmAct.this.areaData[position]);// 设置⼆级下拉列表的选项内容MppspPhoneAlarmAct.this.mCountry.setAdapter(MppspPhoneAlarmAct.this.adapterArea);}@Overridepublic void onNothingSelected(AdapterView<?> arg0){}});3. 部分效果图如下:。

excel制作2级联动下拉菜单

excel制作2级联动下拉菜单

数据录入的时候,经常需要用到两级下拉菜单,并且需要联动,输入完第一级内容之后,第二级的内容是对应的
效果如下所示:
制作过程也非常简单,只需要几步就可以完成
1、准备数据源
第一行中的数据,输入一级下拉菜单中的内容
从第二行开始,依次向下输入一级菜单对应的二级菜单的内容
2、使用名称管理器创建字段
我们选中所有的数据区域
按CTRL+G,调出定位条件
然后在定位条件里面,选择常量
然后,我们选择公式选项卡
点击根据所选内容创建,只勾选首行,然后点击确定
通过这一步操作,其实我们就是将第一行的数据做为字段,将下面的数据作为引用的区域,创建了名称组
3、制作下拉菜单
我们选中第一列A列,然后点击数据,点击数据验证
选择序列
数据来源,我们选择,之前的第一行的数据,也就是表1的A1:E1的数据
这样就制作好了一级下拉菜单
然后选中B列,同样的使用数据验证,但是数据来源,我们输入的是公式:=INDIRECT(A1)
也就是间接引用A列对应的值
所以当我们A2输入的内容是浙江的时候,B2引用的就是浙江这个数据组,因为我们第2步创建了名称管理器,指定了浙江数据组是下面的数据,所以二级下拉菜单就会对应显示
4、开放数据源
如果我们有需求,但左边的数据新增的时候,二级联动下拉菜单能自动的更新数据,不需要重新再次设置
那就需要做个简单的设置
依次选中每列的数据源区域,然后依次按CTRL+T,将它转成智能表格
然后当我们在下方新增数据的时候,下拉菜单就可以自动的扩充数据了。

完全用ASP实现二级联动

完全用ASP实现二级联动

完全用ASP实现二级联动jacksq0位粉丝1楼这里用到了两个asp文件:1.asp和2.asp1.asp源代码:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>ASP实现二级联动</title></head><body><script language="javascript" type="text/javascript">function sel(){var sel1=document.form1.select1.value;if(sel1!="=====请选择====="){document.form1.action="7.asp?id="+document.all.select1.value;document.form1.method="post";document.form1.submit();}}</script><%ch1=Request.QueryString("id")ch2=cint(Request.QueryString("page"))dim myarray(250)for i=1 to ch2temp="c"&cstr(i)myarray(i)=Request.Form(temp)nextch3=Request.QueryString("state")set conn=server.CreateObject("ADODB.Connection")db=server.MapPath("../ChinaStateTable/City.mdb")conn.Open "driver={microsoft access driver (*.mdb)};dbq="&dbset rst=Server.CreateObject("ADODB.RecordSet")sql="select distinct state from city order by state"rst.open sql,conn,1,1,1m=rst.RecordCount%><form name="form1" method="post" action=""><label><select name="select1" onChange="javascript:sel();"><option value="=====请选择=====">=====请选择=====<%if ch1=2 thenfor i=1 to mif ch3=rst("state") thenresponse.Write("<option value='"&rst("state")&"'selected>"&rst("state")&"") rst.MoveNextelseresponse.Write("<option value='"&rst("state")&"'>"&rst("state")&"")rst.MoveNextend ifnextelsefor i=1 to mresponse.Write("<option value='"&rst("state")&"'>"&rst("state")&"")rst.MoveNextnextend if%></select></label>省<br><label><select name="select2"><option value="=====请选择=====">=====请选择=====<%if ch1="2" thenfor i=1 to ch2temp="c"&cstr(i)my=Request.Form(temp)response.Write("<option value='"&my&"'>"&my&"</option>")nextend if%></select></label>市</form><%rst.closeset rst=Nothingconn.Closeset conn=Nothing%></body></html>2.asp<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// /TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><body><%ch1=Request.QueryString("id")set conn2=server.CreateObject("ADODB.Connection")db=server.MapPath("../ChinaStateTable/City.mdb")conn2.Open "driver={microsoft access driver (*.mdb)};dbq="&dbset rst2=Server.CreateObject("ADODB.RecordSet")sql="select city from city where state='"&ch1&"'"rst2.open sql,conn2,1,1,1n=rst2.RecordCount%><form id="form1" name="form1" method="post" action="6.asp?id=2&page=<%res ponse.write(cstr(n))%>&state=<%response.write(ch1)%>"><%for i=1 to nnam="c"&cstr(i)Response.Write("<input type='hidden'name='"&nam&"' value='"&rst2("city")&"'>" )rst2.MoveNextnextrst2.closeset rst2=nothingconn2.closeset conn2=nothing%></form><script language="javascript">document.form1.submit();</script></body></html>此源代码为本人原创。

使用Java+JSP+JavaScript实现多级下拉菜单

使用Java+JSP+JavaScript实现多级下拉菜单
范泽武
( 华南理工大学 计算机软件学院, 广东 揭 阳 523 ) 20 1
【 要】 摘 任何 涉及菜单较 多的业务 系统 , 化菜单的展现 , 优 减 少登录时等待 的时间都是很有必要 的。 常 CS结构 下实现的下 通 拉 菜单需要 读取 全菜单 , 以某种格式组织在一起 并展现 。 文章介
据一定 的循环调用算法 , 生成 JP页面上显示 的源代码 , S 并打印 出来 , 形成最终 的下拉菜单结果 。
二、 关键 算法 简介
1 .从数据库取得 菜单数据集 , 生成 可排序 , 并且包含 菜单 真正路径的数据集合 的遍历算法简介 : 步骤一 : 从数据库取得符合条件 的以下字段 的数据集 : 节点 I 节点名称 , D, 父节点 I 热键字符 , 捷键 , D, 快 是否终结菜单 。 步骤二 : 遍历初始数据集一次 , 决捷键扩展为 4位 , 籽 节点 I D 扩展为 5位 , 并将快捷键 , 是否终结菜单 , 节点名称合并在节点名 称字段中。本次遍历 目的是生成两个结果集 :节点 I ( D,父节点 I TeMa 结果集 , ( D)re p 以及 节点 I 节点名称 )re p结果集。 D, TeMa 步骤三 : 遍历 ( 节点 I 父节点 I T eMa D。 D)r p结果集 一次 , e 以
绍了一种使 用 l aJP JvSr t a + S + aac p 实现 的多级 下拉 菜单 , 以在 v i 可
单: 如果有 , 继续第 二层数组遍历 ; 否则 , 印该 菜单 页面代码 。 打 菜单项采用 IR E的格式 , F AM 确保菜单项 的独立性 , 并且加入菜 单项 页面菜单调用 函数 , 如果该菜单 项也是非 叶子菜单 , 则加入 调用非叶子菜单 函数 ndL f n ( , , o ee Meu AB)如果该 菜单 项是叶子 t 菜单则加入调用叶子菜单函数 ndVe ( ,,) oe i AB0 。如果第二层菜 w 单也是非 叶子菜单 , 则继续遍历第三层 , 并判 断菜单是否 叶子菜 单, 按照上述处理方式 调用 nd Lf eu ) oe e M n (或者 ndV e (o最 t oe i w 后, 将页面代码打 印处理 。

Combobox下拉框两级联动

Combobox下拉框两级联动

Combobox下拉框两级联动下拉框的两级联动是我们开发中经常遇到⼀种情况。

⽐如⼀个学⽣管理系统中,根据年级、科⽬及姓名查询学⽣考试成绩,年级和科⽬都是硬盘中的有限数据(数据库)⽽学⽣则可以有⽤户⼿动指定,这时在数据库中有年级和科⽬两张表,每门科⽬都对应⼀个年级,所以我们可以⽤两个下拉框(Combobox)来存储年级和科⽬信息来供⽤户选择。

界⾯如下:这时如果我们将科⽬对应的下拉框直接绑定科⽬表时,⽤户选择⼀个年级后还要从所有科⽬中进⾏选择就会降低系统的友好性,甚⾄可能出现没有任何意义的查询语句。

我们可以先绑定年级下拉框的数据。

在年级下拉框中的SelectedIndexChange事件中获取年级下拉框中的数据(编号)在⽤得到的数据(年级编号)去查科⽬表,将对应的科⽬信息绑定到科⽬下拉框。

model展开1 int gradeid = Convert.ToInt32(cboGrade.SelectedValue);//获取选定的年级编号 2 3 List list= subjectBll.GetAllSubject(gradeid);//查询指定年继编号下对应的科⽬信息 4 //绑定科⽬下拉框 5 cboSubject.ValueMember = "subjectid"; 6 cboS 返回顶部收缩 1 int gradeid = Convert.ToInt32(cboGrade.SelectedValue);//获取选定的年级编号23 List <Subject> list= subjectBll.GetAllSubject(gradeid);//查询指定年继编号下对应的科⽬信息4 //绑定科⽬下拉框5 cboSubject.ValueMember = "subjectid";6 cboSubject.DisplayMember = "subjectname";7 cboSubject.DataSource = list;下拉框的SelectedValue属性属性原型:常见错误:错误分析:经过实验可以确认将绑定数据源的代码放在属性设置的后边是可以解决这个错误的,个⼈觉得是如果先绑定数据源的话系统会⾃动将valuemember的属性值设置为绑定的集合的类型之后再设置Valuemember时系统不会再对其进⾏更改!。

简单的JSP二级联动菜单

简单的JSP二级联动菜单

简单的JSP⼆级联动菜单本代码通过测试说明:⼀级栏⽬表。

这⾥是硬编码在⽂件中了。

⼆级栏⽬表ablum,⾥⾯有员⼯的信息:姓名(albuj_name),id(album_id),所属部门id(type_id)<%@ include file="../data.jsp" %><%@ page contentType="text/html;charset=gb2312" %><% request.setCharacterEncoding("gb2312"); %><html><head><title>添加个⼈资源</title><head><body bgcolor="#ffffff" text="#000000"><%Rst=null;String sql="select * from ablum order by type_id asc";Rst=Stmt.executeQuery(sql);%><script type="text/javascript">var onecount;onecount=0;subcat = new Array();<%int count = 0;while(Rst.next()){%>subcat["<%=count%>"] = newArray('<%=Rst.getString("album_name")%>','<%=Rst.getString("album_id")%>','<%=Rst.getString("type_id")%>'); <%count++;}Rst.close();%>onecount="<%=count%>";function change(locationid){document.myform.albumid.length = 0;var location_id=locationid;var length=0;var i;for(i=0;i<onecount;i++){if (subcat[i][2] == location_id) {document.myform.albumid.options[length++] = new Option(subcat[i][0], subcat[i][1]);}}}</script><%=count %><form method="POST" name="myform" action="adminsave.jsp"><table><tr> <td>⼀级分类</td><TD> <select name="typeId" onChange="change(document.myform.typeId.options[document.myform.typeId.selectedIndex].value);" size=1><option selected>==请选⼀级分类==</option><option value="1">经理室</option>;<option value="2">经理室1</option>;<option value="3">经理室2</option>;<option value="4">经理室3</option>;<option value="5">经理室4</option>;<option value="6">经理室5</option>;<option value="17">经理室6</option>;<option value="7">经理室7</option>;<option value="8">经理室8</option>;<option value="9">经理室9</option>;<option value="10">经理室10</option>;<option value="11">经理室11</option>;<option value="12">经理室12</option><option value="13">经理室13</option>;<option value="14">经理室14</option>;<option value="15">经理室15</option>;<option value="16">经理室16</option>;<option value="18">经理室17</option>;</select> </TD><TD>选择⼆级分类</TD> <TD><select name="albumid"><option selected>==请选⼆级分类==</option> </select></td></tr></table></forum></html>。

asp二级联动下拉菜单

asp二级联动下拉菜单
<td height="30"><select size="1" name="City"></select></td>
</tr>
</table>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>会员登录</title>
</head>
<body>
<script language ="javascript" >
<td height="30" bgcolor="#D4D0C8"><select size="1" name="Region" onchange ="changeselect(document.form1.Region.options[document.form1.Region.selectedIndex].value)">
set rs = conn.execute(sql)
while not rs.eof
msg = msg & "<option value=""" & rs("id") & """>" & rs("class1") & "</option>"

下拉框数据回显到文本的方法

下拉框数据回显到文本的方法

下拉框数据回显到文本的方法要实现下拉框数据回显到文本的功能,可以按照以下步骤进行操作:1. 创建一个下拉框控件,并设置其选项值和显示文本。

例如:```<select id="mySelect"><option value="1">选项一</option><option value="2">选项二</option><option value="3">选项三</option></select>```2. 创建一个文本框控件,并设置其初始值为空。

例如:```<input type="text" id="myText" value="">```3. 使用JavaScript代码实现下拉框数据回显到文本的功能。

具体实现方法如下:```// 获取下拉框和文本框的DOM对象var select = document.getElementById("mySelect");var text = document.getElementById("myText");// 给下拉框添加change事件监听器select.addEventListener("change", function() {// 将选中的下拉框值赋给文本框text.value = select.options[select.selectedIndex].text;});```4. 在页面加载完成后,调用一次上述代码,以便初始化文本框的值。

例如:```window.onload = function() {// 初始化文本框的值为第一个选项text.value = select.options[0].text;};```通过以上步骤,就可以实现将下拉框的选中值回显到文本框中,从而提高用户体验和操作便捷性。

fastadmin 二级联动 开发实例使用

fastadmin 二级联动 开发实例使用

fastadmin 二级联动开发实例使用
以下是一个二级联动的快速管理系统开发实例:
1. 前端界面设计:
- 建立一个表单页面,包含两个下拉框,一个用于选择一级菜单,一个用于选择对应的二级菜单。

- 通过ajax请求获取一级菜单的数据,并将其填充到第一个下拉框中。

- 当第一个下拉框的选项改变时,触发事件,通过ajax请求获取对应的二级菜
单数据,并将其填充到第二个下拉框中。

2. 后端数据处理:
- 在后端建立一个接口,用于获取一级菜单的数据。

- 当接口被请求时,从数据库中获取一级菜单的数据,并返回给前端。

3. 前端事件处理:
- 使用JavaScript编写事件处理函数,当第一个下拉框的选项改变时,触发事件。

- 在事件处理函数中,通过ajax请求发送选中的一级菜单的值到后端接口,获
取对应的二级菜单数据。

- 将获取到的二级菜单数据填充到第二个下拉框中。

4. 后端数据查询:
- 在后端建立一个接口,用于获取对应一级菜单的二级菜单数据。

- 当接口被请求时,从数据库中查询对应一级菜单的二级菜单数据,并返回给前端。

5. 数据库设计:
- 设计一张菜单表,包括菜单id、菜单名称和上级菜单id等字段。

- 将一级菜单数据存储到菜单表中,并在二级菜单数据中记录对应的上级菜单id。

通过以上步骤,你就可以实现一个简单的二级联动的快速管理系统。

当用户在第
一个下拉框中选择了一级菜单后,会动态展示对应的二级菜单。

你可以根据实际
需求,对界面设计和代码逻辑进行修改和完善。

使用JS动态调用数据库的值在前台显示

使用JS动态调用数据库的值在前台显示

使用JS动态调用数据库的值在前台显示动态调用数据库的值在前台显示是一个常见的需求,在前端开发中使用JavaScript可以轻松完成这个任务。

下面我将详细介绍如何使用JavaScript动态调用数据库的值,并将其显示在前台页面上。

首先,我们需要建立一个数据库用来存储我们想要显示的数据。

常用的数据库系统包括MySQL、MongoDB、SQLite等。

本示例中,我将使用MySQL数据库。

在MySQL数据库中,我们首先需要创建一个表用来存储数据。

打开MySQL的命令行终端,并连接到数据库服务器。

```sqlCREATE DATABASE mydb;USE mydb;CREATE TABLE mytableid INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),age INT,email VARCHAR(255)INSERT INTO mytable (name, age, email) VALUES```以上代码创建了一个名为mydb的数据库,并在其中创建了一个名为mytable的表。

表中有四个字段:id(自增主键)、name、age和email。

还插入了三行数据用于测试。

接下来,我们需要建立一个连接到数据库的JavaScript脚本。

在项目目录下,新建一个名为db.js的文件并添加以下内容:```javascript// 导入mysql模块const mysql = require('mysql');//创建数据库连接const connection = mysql.createConnectionhost: 'localhost',user: 'root',password: 'password',database: 'mydb'});//连接到数据库connection.connect(;//导出数据库连接对象供其他模块使用module.exports = connection;```以上代码使用了Node.js的mysql模块创建了一个数据库连接对象,并通过连接对象导出连接到数据库的实例。

ASP中实现下拉菜单联动

ASP中实现下拉菜单联动

ASP中实现下拉菜单联动1.asp+jquery实现下拉菜单联动,代码如下:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script src="js/jquery-1.7.2.js" type="text/javascript"></script><script language="javascript" type="text/javascript"> $(document).ready(function(){$("#caozuo").click(function(){if($("#caozuo").val()=='暂停办理'){$("#renyuan").hide();}if($("#caozuo").val()=='文稿拟办'){ $("#renyuan").show();$("#submit").show();}if($("#caozuo").val()=='-1'){ $("#renyuan").hide();$("#submit").hide();}})});</script></head><body><table width="618" border="0" cellspacing="0" cellpadding="0"><tr><td height="60">&nbsp;</td></tr></table><table width="618" border="1" cellspacing="0" cellpadding="0" align="center"><tr bgcolor="#CCCCCC"><td><select id="caozuo"><option value="-1">-请选择-</option><option value="文稿拟办">文稿拟办</option><option value="暂停办理">暂停办理</option></select><select id="renyuan" style="display:none"><option>张三</option><option>李四</option><option>王五</option></select><input type="submit" value="确定" id="submit"style="display:none"/></td></tr></table></body></html>2.asp+javasript实现下拉菜单联动,代码如下:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script src="js/jquery-1.7.2.js"></script><script language="javascript" type="text/javascript"> function xuanze(caozuo){if(caozuo.value=='暂停办理'){document.getElementById("renyuan").style.display="none";document.getElementById("queding").style.display="";}if(caozuo.value=='文稿拟办'){document.getElementById("renyuan").style.display="";document.getElementById("queding").style.display="";}if(caozuo.value=='-1'){document.getElementById("renyuan").style.display="none";document.getElementById("queding").style.display="none"}}</script></head><body><table width="618" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td height="100">&nbsp;</td></tr></table><table width="618" border="1" cellspacing="0" cellpadding="0" align="center"><tr bgcolor="#eeeeee"><td height="25"><select id="caozuo" onchange="xuanze(caozuo)"><option value="-1">-请选择-</option><option value="文稿拟办">文稿拟办</option><option value="暂停办理">暂停办理</option></select><select id="renyuan" style="display:none"><option>张三</option><option>李四</option></select><input type="submit" value="确定" id="queding" style="display:none"/></td></tr> </table></body> </html>。

Excel二级下拉菜单联动自动匹配内容

Excel二级下拉菜单联动自动匹配内容

Excel二级下拉菜单联动自动匹配内容实现效果:如,点击“市”下方的下拉菜单,有“成都、北京、杭州、上海”四个选项,选择杭州以后,在“区”下方单元格的就会相应的出现杭州的区。

操作说明:1.首先选中表格中的基础数据,按键盘上的【Ctrl+G】,就会弹出下面的定位窗口。

2.然后点击下方的【定位条件】,选择【常量】点击确定。

这样操作之后,我们就只选中了我们有数据的单元格。

3.接着直接点击上方菜单栏中的【公式】--> 【根据所选内容创建】,对其名称进行定义,选择【首行】。

在菜单栏的【公式】-->【名称管理器】里可以看到我们定义的首行,以及其在下方对应的有关的区所在的单元格位置。

4.一级下菜单引用的是第一行的数据,我们对一级下拉菜单进行定义。

选中第一行的数据,点击菜单栏中的【定义名称】,在输入区域名称这里输入名称,例如“首行”,然后点击确定。

可以看到在名称管理器里多了一个名称“首行”。

5.选中需要设置一级下拉菜单的单元格,选择菜单栏中的【数据】,点击【数据验证】(或叫数据有效性)。

在设置选项卡下的验证条件选中【序列】(或叫列表),然后在来源这里输入之前定义的首行名称。

6.在二级下拉菜单中点击【数据验证】(或者是数据有效性),在允许这里点击【序列】(或者是列表)。

在源这里输入“=indirect()”,为了引用“一级菜单”这个单元格中的数据,将鼠标移至括号中点击该一级菜单的单元格。

点击确定后,这里会提示一个错误提醒,可无需理会,直接点击“是”。

7.多个单元格需要进行下拉菜单设置,如果我们直接向下拉的话,就会发现后面的二级下拉菜单引用的数据其实还是来自于第一个单元格。

因为这里我们设置的是对单元格进行绝对引用,这里我们需要进行修改。

点击“数据验证”(“数据有效性”),将源下方indirect函数后面的第二个美元符号“$”删除即可。

fastadmin选择下拉框两级联动

fastadmin选择下拉框两级联动

fastadmin选择下拉框两级联动<div class="form-group"><label class="control-label col-xs-12 col-sm-2">发送者:</label><div class="col-xs-12 col-sm-8">{:build_select('row[sender]', $senders, null, ['class'=>'form-control selectpicker sender', 'data-rule'=>'required'])} </div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('External_userid')}:</label><div class="col-xs-12 col-sm-8"><select id="c-external_userid" class="form-control selectpicker" name="row[external_userid]"><option value="0" id="external_userid">请选择</option></select></div></div>1.build_select是框架内置的函数,$senders为数据集$('.sender').on('changed.bs.select', function() {//单击时⽅法// console.log('agja');var ids = $(this).val();console.log($('.sender').selectpicker('val'));$.post('qywx.gmsglog/getFollowUser',{'userid':ids},function (data) {$('#c-external_userid').html("");for(var i in data){$('#c-external_userid').append('<option value="'+data[i]+'">'+data[i]+'</option>')}$('select').selectpicker('refresh');});});1.当第⼀个select点击选择时候,通过jq监听拿到数据,传送给后台接⼝public function getFollowUser(){$userid = $this->request->post('userid');$external_userids = Db::name('qywx_resident_follow_user')->field('external_userid')->where('userid', $userid)->select()->toArray();$external_userids = array_column($external_userids, 'external_userid');$external_userids = array_combine($external_userids, $external_userids);return json($external_userids);}1.通过json返回数据思考: 1.定义两个下拉选择框,通过事件进⾏关联,拿到第⼀个下拉框的id传送给后台,拿到数据 2.每次点击的时候需要清空之前的option 3.$('select').selectpicker('refresh');刷新⼀下select,重新加载append数据 4.select加multiple=""属性为多选。

ASP二级联动菜单

ASP二级联动菜单
1
北京市
1
1
0
2
合肥市
2
2
1
3
芜湖市
3
3
1
4
安庆市
4
4
1
5 济南市
5
5
2
6 青岛市
6
6
2
以下市名略。
设计思想:前面四项同Province表设计思想,ProvinceID字段将Province表和City表联系起来。
具体做法如下:
1.设计数据库
我们选用Access数据库。首先,新建名为database1.mdb的Access数据库
在database1.mdb数据库中建立两个表分别为province、city。具体字段设计如下:
Province(省)
<!--//////////////////////////City_select下拉列表//////////////////////////-->
<select name="City_select">
<%
set rs_City=server.createobject("adodb.recordset")
具体字段:id—自动编号 ProvinceName—省名 ProvinceNo—省名编号 ProvinceOrder—省排序编号
省 id ProvinceName ProvinceNo ProvinceOrder
1 北京市 0 0
2 安徽省 1 1
3 山东省 2 2
sql="select * from City where ProvinceID="&tmpid&" order by CityOrder"

VBA新手学习笔记之:二级下拉菜单(字典嵌套法)教学内容

VBA新手学习笔记之:二级下拉菜单(字典嵌套法)教学内容

V B A新手学习笔记之:二级下拉菜单(字典嵌套法)VBA新手学习笔记之:二级下拉菜单(字典嵌套法)如下效果图:今天这个效果所涉及的新增知识点有:1. 模块级变量的定义2. 事件程序3. 字典嵌套4. Join函数下面我们逐一来解读下这四个知识点:1.先看看什么是事件之前我们执行Excel程序都需要手动画一个按钮,然后将对应的过程指定给这个按钮,当我们需要程序运行的时候,就发送一个命令(点一下按钮)给这个程序,程序接收命令后,会按照程序的逻辑进行运行。

而事件程序是不需要手工指定按钮,而是当我们在操作Excel的时候有些动作会自动被ExcelVBA所识别,VBA内部已经自行内置了有关此事件的过程名,我们在对应的过程中写需要执行操作的代码,当Excel的某个动作发生的时候,会自动触发执行所写的程序。

这个案例所用到的事件程序有两个:第一:单元格选区发生变化的时候:当需要填写省份的那一列的单元格选区发生变化时,需要添加去重后的省份的下拉菜单操作方法:对准需要达到效果的工作表名的位置右键——查看代码——进入工作表的代码编辑区——选择worksheet——会自动弹出(单元格选区发生变化时要执行的过程)——在该过程中写所需要的代码即可Private SubWorksheet_SelectionChange(ByVal Target As Range)End Sub第二:单元格的值发生变化的时候:当省份填写完毕后,则需要将对应省份的城市添加到城市单元格的下拉菜单,如果省份单元格没有填、则城市下拉菜单跟着消失。

操作方法:前面的操作与第一点都是一样的,调出代码窗口后——选择worksheet——在事件下拉框中选择Change事件——会自动生成(单元格值发生变化时要执行的过程)Private Sub Worksheet_Change(ByValTarget As Range)End Sub2.因为今天的两个程序中都需要使用同一个字典来做数据有效性的下拉菜单,所以用了一个字典对象的模块级变量dicSF,所谓模块级变量即在同一个模块内所有程序都能使用的变量;这里涉及到变量的作用域的问题,大家可以百度搜索下什么叫变量的作用域。

jsp从数据库获取数据填充下拉框实现二级联动菜单的方法

jsp从数据库获取数据填充下拉框实现二级联动菜单的方法

jsp从数据库获取数据填充下拉框实现⼆级联动菜单的⽅法本⽂实例讲述了jsp从数据库获取数据填充下拉框实现⼆级联动菜单的⽅法。

分享给⼤家供⼤家参考,具体如下:项⽬告⼀段落,现在将遇到的⽐较实⽤的东西记录下来,写了多遍了,谨记于此,以备查看!1、⾸先在数据库中获取第⼀个下拉框的数据:<s:select listKey="tsFrom" id="t_tsfrom" cssClass="required"listValue="tsFrom" cssStyle="width:90" list="tsfrom1"name="tsFrom" theme="simple" headerKey=""onchange="getTsFromDescribe(this);" headerValue="--请选择--" />后台处理:@Autowiredprivate CustomMaManager custommamanager;//注解相当的好⽤啊,代码都省了⼀⼤截tsfrom1 = custommamanager.getTsFrom();Service://得到投诉来源public List<CustomManage> getTsFrom(){return custommanagedao.getTsFrom();}dao:/**得到产品类型**/public List<CustomManage> getTsFrom(){return this.find("SELECT distinct new CustomManage(tsFrom,'2') FROM CustomManage C WHERE C.tsFrom IS NOT NULL ORDER BY tsFrom ASC"); }注意:Oracle在java代码⾥取出重复值与SqlServer不⼀样,它得使⽤:复制代码代码如下:SELECT distinct new CustomManage(tsFrom,'2') FROM CustomManage C WHERE C.tsFrom IS NOT NULL ORDER BY tsFrom ASC先new实体bean(CustomManage)然后在实体bean中给相应字段设置构造⽅法,不然将会出现后台已经返回了值,但是在前台下拉框中不显⽰,下拉框空⽩的现象。

ASP中实现下拉菜单联动

ASP中实现下拉菜单联动

ASP中实现下拉菜单联动1.asp+jquery实现下拉菜单联动,代码如下:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd" ><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script src="js/jquery-1.7.2.js" type="text/javascript"></script><script language="javascript" type="text/javascript"> $(document).ready(function(){$("#caozuo").click(function(){if($("#caozuo").val()=='暂停办理'){$("#renyuan").hide();}if($("#caozuo").val()=='文稿拟办'){ $("#renyuan").show();$("#submit").show();}if($("#caozuo").val()=='-1'){ $("#renyuan").hide();$("#submit").hide();}})});</script></head><body><table width="618" border="0" cellspacing="0" cellpadding="0"><tr><td height="60">&nbsp;</td></tr></table><table width="618" border="1" cellspacing="0" cellpadding="0" align="center"><tr bgcolor="#CCCCCC"><td><select id="caozuo"><option value="-1">-请选择-</option><option value="文稿拟办">文稿拟办</option><option value="暂停办理">暂停办理</option></select><select id="renyuan" style="display:none"><option>张三</option><option>李四</option><option>王五</option></select><input type="submit" value="确定" id="submit" style="display:none"/></td></tr></table></body></html>2.asp+javasript实现下拉菜单联动,代码如下:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd" ><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script src="js/jquery-1.7.2.js"></script><script language="javascript" type="text/javascript">function xuanze(caozuo){if(caozuo.value=='暂停办理'){document.getElementById("renyuan").style.display="none" ;document.getElementById("queding").style.display="";}if(caozuo.value=='文稿拟办'){document.getElementById("renyuan").style.display="";document.getElementById("queding").style.display="";}if(caozuo.value=='-1'){document.getElementById("renyuan").style.display="none" ;document.getElementById("queding").style.display="none"}}</script></head><body><table width="618" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td height="100">&nbsp;</td></tr></table><table width="618" border="1" cellspacing="0" cellpadding="0" align="center"><tr bgcolor="#eeeeee"><td height="25"><select id="caozuo" onchange="xuanze(caozuo)"><option value="-1">-请选择-</option><option value="文稿拟办">文稿拟办</option><option value="暂停办理">暂停办理</option></select><select id="renyuan" style="display:none"><option>张三</option><option>李四</option></select><input type="submit" value="确定" id="queding" style="display:none"/></td></tr></table></body></html>。

asp下拉框二级联动

asp下拉框二级联动

asp下拉框⼆级联动<script language = "JavaScript"> //js开始var aaa;//定义aaa变量aaa=0;//aaa赋0bb = new Array();//创建bb动态数组<%count = 0 '定义bb数组下标变量do while not rs.eof%>//循环所有记录bb[<%=count%>] = new Array("<%= trim(rs("xiaoleiname"))%>","<%= trim(rs("daleiname"))%>","<%= trim(rs("xiaoleiid"))%>");//将(⼩类名,⼤类名,⼩类id)作为⼀个数据存⼊bb动态数组,bb变为⼀个⼆维数组 <%count = count + 1'下标变量递增rs.movenext'移到下⼀条数据库记录loop'循环rs.close'关闭查询set rs=nothing%>//释放变量aaa=<%=count%>;传递动态数组最⼤下标function chang1(dalei)//根据⼤类名改变⼩类下拉内容的函数{document.form1.xiaolei.length = 0; //清空⼩类下拉框内容document.form1.xiaolei.disabled=false;//设置⼩类下拉框失效var dalei=dalei;//这句个⼈认为没什么必要var i;//定义循环⽤的下标变量document.form1.xiaolei.options[0] = new Option('====⾏业名称====','');//给⼩类下拉框添加⼀个名称为“====⾏业名称====”的选项for (i=0;i < aaa; i++)//开始循环{if (bb[i][1] == dalei)//根据⼤类名进⾏筛选{document.form1.xiaolei.options[document.form1.xiaolei.length] = new Option(bb[i][0], bb[i][0]);添加⼩类下拉框选项}}if(document.form1.xiaolei.options.length==1)document.form1.xiaolei.disabled=true; //如果⼩类下拉框有选项,则恢复⼩类下拉框有效}</script><!--js程序完--><!--下⾯的只解释部分吧,太累--><body><form name="form1" action="search_save.asp" method="post"><!--表单开始--><select name="dalei" id="dalei" onChange="chang1(this.value)">"><!--⼤类下拉框开始--><option value="">请选择⾏业范围</option><!--添加⼀个选项--><%sql="select * from hangyedalei"set rs=server.createobject("ADODB.Recordset")rs.open sql,conn,1,1do while not rs.eof%><option value="<%=rs("daleiname")%>"><%=rs("daleiname")%></option><!--根据数据库查询结果添加全部⼤类进来--><%rs.movenextlooprs.Closeset rs=nothing%></select><!--⼤类下拉框结束--><select name="xiaolei"><!--⾃⼰应该看懂了吧--><option value="">请选择⾏业名称</option></select>。

二级下拉列表返回的数据格式java

二级下拉列表返回的数据格式java

二级下拉列表返回的数据格式java(原创实用版)目录1.二级下拉列表的概述2.Java 中返回数据的格式3.示例代码及解析正文【一级标题】二级下拉列表返回的数据格式 java【二级标题】二级下拉列表的概述二级下拉列表,又称多级联动下拉列表,是一种用户界面设计模式,主要用于在网页或应用程序中实现两个或多个相关联的列表之间的数据筛选和展示。

用户从第一个列表中选择一个选项,第二个列表会根据第一个列表的选项发生变化,从而实现数据的动态筛选和展示。

【二级标题】Java 中返回数据的格式在 Java 中,返回数据的格式通常为 JSON(JavaScript Object Notation)格式。

JSON 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。

JSON 使用键值对(key-value)的方式来表示数据对象,因此具有较好的扩展性和通用性。

【二级标题】示例代码及解析下面是一个使用 Java 返回二级下拉列表数据的示例代码:```javaimport com.fasterxml.jackson.databind.ObjectMapper;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Demo {public static void main(String[] args) {// 创建一个二级下拉列表的数据模型List<Map<String, String>> secondLevelData = new ArrayList<>();Map<String, String> item1 = new HashMap<>();item1.put("id", "1");item1.put("name", "选项 1");secondLevelData.add(item1);Map<String, String> item2 = new HashMap<>();item2.put("id", "2");item2.put("name", "选项 2");secondLevelData.add(item2);Map<String, String> item3 = new HashMap<>();item3.put("id", "3");item3.put("name", "选项 3");secondLevelData.add(item3);// 将数据以 JSON 格式返回ObjectMapper objectMapper = new ObjectMapper();try {String jsonData =objectMapper.writeValueAsString(secondLevelData);System.out.println(jsonData);} catch (IOException e) {e.printStackTrace();}}}```运行上述代码,输出的 JSON 格式数据如下:```json[{"id": "1","name": "选项 1"},{"id": "2","name": "选项 2"},{"id": "3","name": "选项 3"}]```通过上述示例代码,我们可以看到 Java 中返回的二级下拉列表数据采用了 JSON 格式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在一个jsp页面实现二级下拉框联动,实时读取数据库数据,这个方法非常使用,只需要修改很小的地方就可以使用。

设计的文件,serch.jsp,main.js,bytetostr.js,
先讲一下main.js,这是javascript,其中注意修改jsp页面名称。

function findObject(fName,initValue)...{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//注意修改jsp页面
xmlhttp.send();
document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody); //bytes2BSTR函数在bytetostr.js中
}
其次为bytetostr.js,这是vbscript,这个不需要修改任何内容,他的主要功能就是读取数据转换字符串用的。

Function bytes2BSTR(vIn)
dim i
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
接下来就是serch.jsp页面,只需要修改div中的id为你想要的名字,再将一开始的包更换一下,已经sql语句改下就可以了,有不明白的可以参与讨论
<%@ page contentType="text/html; charset=gb2312" language="Java"
import="com.sjth.zdsygl.vo.*,.*,java.util.*,com.sjth.zdsygl.jdbc.*,java.sql.ResultSet"%>//导入相应的包<%
//这部分代码用于执行查询数据库,返回字符串
if (request.getParameter("findObject")!=null)...{
if (request.getParameter("findObject").equals("hy_dm"))...{
DBConnect conn = null;
ResultSet rs = null;
try...{
out.print("<select name='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)">");
String sql = "select * from dm_hy group by left(hy_dm,7)";
conn = new DBConnect();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
while(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch (Exception e)...{
}
finally...{
try...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
catch (Exception e)...{
e.printStackTrace();
}
}
}
if (request.getParameter("findObject").equals("hymx_dm"))...{
DBConnect conn = null;
ResultSet rs = null;
try...{
out.print("<select name='hymx_dm' >");
String sql = null;
if (request.getParameter("initValue").equals(""))...{
sql = "select * from dm_hy";
}
else...{
sql = "select * from dm_hy where hy_dm like '"+request.getParameter("initValue")+"%'";
}
conn = new DBConnect();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
while(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch (Exception e)...{
}
finally...{
try...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
catch (Exception e)...{
e.printStackTrace();
}
}
}
return;
}
%>
<html>
<head>
<link href="Css/table.css" type="text/css" rel="stylesheet">
<script language=vbscript src="css/bytetostr.js"></script>
<script language=javascript src="css/main.js"></script>//导入两个js文件</head>
<body>
<div>所属行业:</div>
<div id="hy_dm"></div> //用来显示返回的字符串
<div >所属明细行业:</div>
<div id="hymx_dm"></div>//用来显示返回的字符串
</body>
</html>
<script language="javascript">
findObject("hy_dm","");
findObject("hymx_dm","");//这两条是页面执行是调用
</script>。

相关文档
最新文档