一聚教程网:一个值得你收藏的教程网站

热门教程

真正实现两个列表框动态关联(绝非事先将数据写入页面再用脚本过滤) (Triumph )

时间:2022-06-30 09:57:58 编辑:袖梨 来源:一聚教程网

想了好久得出的方法,想着很多人都为此问题得不到解决而苦恼,本着代码共享的原则,现公布出来供大家指正(其实不说出来我也难受)。如果您觉得不错请帮忙提提前,好让更多的朋友看到。
此方法绝不是事先将所有记录都写入到页面中再通过脚本过滤,那样虽然简单,但对于大的数据量显然就不适合了,而且还严重浪费资源。
将下面的代码稍作修改即可应用于其它地方,非常方便。
为测试用,先建一名 Test.mdb 的 Access2000 数据库,建立两个表 Type,Title,结构如下:
Type
******************
ID    自动编号,主键
名称    文本,长度合适
Title
********************
ID    自动编号,主键
类别    长整形数字,并联 Type 表的 ID 字段
标题    文本,长度合适
我们的目的是从 Type 表中读取记录并写入到第一个列表框中,并在第一个列表框选择时从 Title 表中过滤出相应记录写入到第二个列表框中,并且可以随时获得第二列表框所选的值。
关键:在 B.asp 放置一隐藏域,来存放第二列表框所选的值,在 A.asp 中通过脚本来访问该隐藏域的值来达到跨页面读取数值的目的。
'********************************************************
'    conn.asp     连接数据库,这里用 test.mdb 来作测试
'********************************************************
<%
    dim conn
    dim connstr
    Set conn = Server.CreateObject("ADODB.Connection")
    connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/test.mdb")
    conn.Open connstr
%>
'********************************************************
'    A.asp     主页面,内嵌 B.asp(第二列表框在B.asp页面)
'********************************************************