标题:[求助]在网页中如何做到下拉列表间的同步?
只看楼主
windy2yuyu
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2005-8-3
 问题点数:0 回复次数:3 
[求助]在网页中如何做到下拉列表间的同步?
    比如说有三个下拉列表框,分别代表着省,市,县,第一个下拉列表选的是湖北省,那么在第二个列表中就只出现湖北省所以的市,而其他省的市就不出现,选中了武汉市后,第三个列表中就出现武汉市的各个区,而不出现其他市下面的县。
    还有一个问题,如何把一个列表中选中的内容实时的在一个文本框中显示出来呢?比如选中湖北省,那么在另外一个文本框中就自动的显示出“湖北省”,那么在这一个文本框中如显示多个列表框中的选项,中间用(,)隔开,比如我选了湖北省,湖南省,山东省等,都在一个文本框中显示,而不会后选的把先选的给替换掉,请大家帮个忙,谢谢。
搜索更多相关主题的帖子: 网页 列表 
2005-08-05 09:01
downdown
Rank: 1
等 级:新手上路
帖 子:139
专家分:0
注 册:2005-6-20
得分:0 
我遇到了同样的困难.我是要做四个下拉菜单. 下面是我发的求助贴,看看对你有没帮助! http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=10&ID=23950&page=2
2005-08-05 09:11
windy2yuyu
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2005-8-3
得分:0 
谢谢,看了以后很有帮助,
2005-08-05 10:20
reman
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-8-5
得分:0 

一般情况下这种情况是来对二级的目录有用,对于现在网站流传的JS好多种,但都无外乎那些令像我这样的菜鸟晕头转向的JS代码。。一下子for...一下子array的。 废话少说,切入正题了。

首先得建一个表,当然,如果你的表中就已经建好目录的话,那这一步可以省略了。但有一点要提醒:这个表是我这个例子的使用依据(不知道这样说对不对)。

由于我用的表是ACCESS的,所以建表就不说了,只列出这个两个表的相应的字段名(数据库名:db.mdb): 表名:type_tree ——父类 字段:type_id(自动编号) type_name(类别名称)

表名:s_type ——子类 字段:id(自动编号) s_name(子类别名称) type_id(父类ID)——与父类表相对应

现在是建立数据库连接:

Dim conn, connStrSet conn = server.CreateObject("ADODB.Connection")connStr = "Provider = Microsoft.jet.oledb.4.0;"connStr = connStr & "Data Source = " & server.mappath("db.mdb")Conn.Open connStr 以上代码应当不用再解释了吧,都是大家常用的代码。。

现在进入实质性的操作:) 二级关联菜单一般情况下都是以下拉菜单来做,这里我也不例外,一样用下拉菜单来做。 只不过这里有一个地方不一样哦。 就是一个用的是跳转菜单,这一点很重要,成功与否全看这个菜单有没有用对! 以下是这个跳转菜单的代码! <select name="first" onChange="MM_jumpMenu('parent',this,0)"> <% sql = "select [type_id],[type_name] from [type_tree]" set rs = conn.execute(sql)'取得父类的ID及名称 if rs.eof or rs.bof then response.write "<option>-----</option>" '如果没有记录,就显示----- else while not(rs.eof or rs.bof) '有记录,就将父名称列出来,形成下拉。 response.write ("<option value='?sec=" & rs(0) & "'") if cstr(rs(0)) = request.querystring("sec") then response.write "selected" end if response.write (">" & rs(1) & "</option>") rs.movenext wend rs.movefirst '将游标移到第一条,以备下面之用。 end if %> </select>

哦,对了,还有一段代码忘了贴出来了,这个是跳转菜音的关键啊,看我粗心的! 补上补上: <script language="JavaScript" type="text/JavaScript"> <!-- function MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } //--> </script>

以上代码贴到<head>里,是DW生成,我看不太懂什么意思,所以不注解了:D 现在是菜单的二级部分,这里不是用跳转菜单,只是一个列表罢了,所以代码跟上面的跳转菜单也就差一个onchange这个函数。 以下是这个菜单的代码,由于循环跟判断相对上面来说复杂一些,大伙要看清楚一点哦。 <select name="second"> <%if rs.eof or rs.bof then response.write ("<option>--------</option>") else if request.querystring("sec") = "" then '获取跳转之后的sec值 temp=rs(0) 如果为空,就把temp的值设为第一条记录的值 else temp = request.querystring("sec") '否则就为收到的值 end if subsql = "select [s_name] from [s_type] where type_id='"&temp&"'" set subrs = conn.execute(subsql) '列出一切资料为temp的记录 if subrs.eof or subrs.bof then response.write ("<option>-----</option>") '如果没有记录,则在这个列表中显示"-----" else while not(subrs.eof or subrs.bof)'否则就用循环列出一切符合条件的记录。 response.write ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>") subrs.movenext wend end if end if

'关闭所有的记录集 subrs.close set subrs = nothing rs.close set rs = nothing conn.close set conn = nothing %> </select>

2005-08-05 11:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-24393-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053941 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved