二级联动下拉菜单,读数据库数据 100
现在一个数据库表名为userinfo,表内有字段ID,name(名字),dept(部门)三个字段,现要求实现如下操作:当打开一个人员名单增加页面时,A下拉菜单显示所有部门...
现在一个数据库表名为userinfo,表内有字段ID,name(名字),dept(部门)三个字段,现要求实现如下操作:
当打开一个人员名单增加页面时,A下拉菜单显示所有部门的名称,当选择A菜单内一个部门后,B下拉菜单显示出此部门所有员工的名单。
这二个下拉菜单都是读数据库取得。
请用javascript接合asp实现。
非常感谢。
请根据我的实际情况写完整代码。谢谢啊。
注意,只有一个表,没有专门的部门表,全是在一个表里。
同一个表操作,我先用select distinct * from userinf可以读取不重复的部门列表。
二楼的代码没对。好像不适合我的情况。 展开
当打开一个人员名单增加页面时,A下拉菜单显示所有部门的名称,当选择A菜单内一个部门后,B下拉菜单显示出此部门所有员工的名单。
这二个下拉菜单都是读数据库取得。
请用javascript接合asp实现。
非常感谢。
请根据我的实际情况写完整代码。谢谢啊。
注意,只有一个表,没有专门的部门表,全是在一个表里。
同一个表操作,我先用select distinct * from userinf可以读取不重复的部门列表。
二楼的代码没对。好像不适合我的情况。 展开
展开全部
既然一条语句你这样写,下面的变通下不就可以了。
[userinfo]员工信息表
ID-员工ID
NAME-员工名
dept-所在部门(部门名称)
<Script language="JavaScript">
<!--
var subcat = new Array();
<%
'初始化一个计数器,用于初始化JS中的数组顺序
i=0 '从0开始
'读取用户数据
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.open "Select * From [userinfo] order by id asc",conn,1,1
do while Not rs.Eof
%>
//该部分动态生用户列表数据数组(JS使用)
//<%rs("id")%>字段防止重名人员使用ID识别
//此两个列表放在表单名为form中,如其他名称FORM1,请更改代码中的FORM为其他名称即可
subcat[<%=i%>] = new Array('<%=rs("dept")%>','<%=rs("id")%>','<%=rs("name")%>')
<%
'计数(循环生成可让JS使用的数组)
i=i+1
rs.MoveNext
loop
rs.close
set rs=nothing
%>
function changeselect1(locationid)
{
document.form.user.length = 0;
document.form.user.options[0] = new Option('员工列表,'');
for (i=0; i<subcat.length; i++)
{
if (subcat[i][0] == locationid)
{document.form.user.options[document.form.user.length] = new Option(subcat[i][1], subcat[i][2]);}
}
}
//-->
</script>
<select name="s1" onChange="changeselect1(this.value)">
<option value="" selected>部门列表</option>
<%
'读部门数据,生成1级选择菜单[部门选择]
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.open "Select distinct(dept) * From [userinfo] order by id asc",conn,1,1
do while Not rs.Eof
'使用chr(13)和""是为生成符合HTML书写标准数据,无他意义
Response.Write "<option value="""&rs("dept")&""">"&rs("dept")&"</option>"&chr(13)
rs.MoveNext
loop
rs.close
set rs=nothing
%>
</select>
<!--默认放一个员工列表(没有选择部门时显示)-->
<select name="user" size=1>
<option value="">员工列表</option>
</select>
[userinfo]员工信息表
ID-员工ID
NAME-员工名
dept-所在部门(部门名称)
<Script language="JavaScript">
<!--
var subcat = new Array();
<%
'初始化一个计数器,用于初始化JS中的数组顺序
i=0 '从0开始
'读取用户数据
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.open "Select * From [userinfo] order by id asc",conn,1,1
do while Not rs.Eof
%>
//该部分动态生用户列表数据数组(JS使用)
//<%rs("id")%>字段防止重名人员使用ID识别
//此两个列表放在表单名为form中,如其他名称FORM1,请更改代码中的FORM为其他名称即可
subcat[<%=i%>] = new Array('<%=rs("dept")%>','<%=rs("id")%>','<%=rs("name")%>')
<%
'计数(循环生成可让JS使用的数组)
i=i+1
rs.MoveNext
loop
rs.close
set rs=nothing
%>
function changeselect1(locationid)
{
document.form.user.length = 0;
document.form.user.options[0] = new Option('员工列表,'');
for (i=0; i<subcat.length; i++)
{
if (subcat[i][0] == locationid)
{document.form.user.options[document.form.user.length] = new Option(subcat[i][1], subcat[i][2]);}
}
}
//-->
</script>
<select name="s1" onChange="changeselect1(this.value)">
<option value="" selected>部门列表</option>
<%
'读部门数据,生成1级选择菜单[部门选择]
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.open "Select distinct(dept) * From [userinfo] order by id asc",conn,1,1
do while Not rs.Eof
'使用chr(13)和""是为生成符合HTML书写标准数据,无他意义
Response.Write "<option value="""&rs("dept")&""">"&rs("dept")&"</option>"&chr(13)
rs.MoveNext
loop
rs.close
set rs=nothing
%>
</select>
<!--默认放一个员工列表(没有选择部门时显示)-->
<select name="user" size=1>
<option value="">员工列表</option>
</select>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询