• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

从数据库中读取记录的动态列表(无初始值)

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网 这里是以省份和城市为例,由于用到数据库,请先建立数据库dlist.mdb

数据库名称:dlist.mdb


省份表名称:Province
字段有:p_id(类型:自动编号),p_name(类型:文本,省份名称)

城市表名称:City
字段有:c_id(类型:自动编号),c_pid(类型:文本,省份名称,等于Province表中的p_name),c_name(类型:文本,城市名称)


源程序如下,保存为ASP文件即可执行。
------------------------------------------------------------
<%
dim id
id=request.QueryString("id")

if id="1" then
response.Write "<br>" & request.Form("lstb")
response.Write "<br>" & request.Form("lsts")
end if

%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS动态列表示例</title>
<script language="JavaScript">
<!--
var sSort = new Array();
var num = 0;
<%
dim conn,rs,grs,i,j,pstr
pstr=""
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
set grs=server.createobject("adodb.recordset")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("dlist.mdb")
@#写省份JS数组
rs.open "select * from province;",conn,1,1
for i=0 to rs.recordcount-1
pstr=pstr & "<option value=""" & rs("p_name") & """>" & rs("p_name") & "</option>"
getsub(rs("p_name"))
rs.movenext
next

rs.close()
set rs=nothing
set grs=nothing

@#根据省份写城市JS数组的过程
sub getsub(pname)
grs.open "select * from city where c_pid=@#" & pname & "@#;",conn,1,1
for j=1 to grs.recordcount
response.write "sSort[num++] = new Array(""" & grs("c_name") & """ ,""" & pname & """);" & vbCrlf
grs.movenext
next
grs.close()
end sub
%>

var nsSortCount = num;

function sdbSortChange(cmbsdbSort, cmbsSort)
{
var nSelsdbSort = cmbsdbSort.selectedIndex;
var ssdbSort = cmbsdbSort.options[nSelsdbSort].value;

cmbsSort.length = 0;
cmbsSort.options[0] = new Option(@#-请选择-@#, @#@#);
for(var i=0; i<nsSortCount; i++)
{
if(sSort[i][1] == ssdbSort)
{
cmbsSort.options[cmbsSort.length] = new Option(sSort[i][0], sSort[i][0]);
}
}
}

function InitsSort(cmbsdbSort, cmbsSort)
{
var nSelsdbSort = cmbsdbSort.selectedIndex;
var ssdbSort = cmbsdbSort.options[nSelsdbSort].value;
var ssSort = cmbsSort.options[0].value;


cmbsSort.length = 0;
cmbsSort.options[0] = new Option(@#-请选择-@#, @#@#);
var n = 0;
for(var i=0; insSortCount; i++)
{
if(sSort[i][1] == ssdbSort)
{
cmbsSort.options[cmbsSort.length] = new Option(sSort[i][0], sSort[i][0]);

if(sSort[i][0] == ssSort)
cmbsSort.options[cmbsSort.length-1].selected = true;
}
}
}

//-->
</script>
</head>

<body>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<form action="index.asp?id=1" method="post" name="frmdlist" id="frmdlist">
<table width="408" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td width="400" align="center">JS动态列表示例</td>
</tr>
<tr>
<td align="center"><%response.write "<select name=""lstb"" style=""width:200"" onChange=""sdbSortChange(this,frmdlist.lsts);"">" & pstr & "</select>"%>
</td>
</tr>
<tr>
<td align="center">&nbsp; </td>
</tr>
<tr>
<td align="center"><select style="width:200" name="lsts" id="lsts">
</select>
</td>
</tr>
</table>
<p align="center">
</p>
<p align="center">&nbsp;</p>
<p align="center">
<input type="submit" name="Submit" value="提交">
</p>
</form>
</body>
</html>



延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网