急!!!同一个页面传值——在线等待

急!!!同一个页面传值——在线等待,第1张

与数据库相连的二级下拉菜单完整代码文件select.asp代码如下:

<!--#include file="conn.asp"-->

<%

mysql="select * from city order by city_name asc "'这是二级菜单的数据来源

set rsh2 =server.createobject("ADODB.Recordset")

rsh2.open mysql,conn,1,2

rsh2.movefirst

m=0

x=0

%>

<script language="javascript">

subcat = new Array()//建立一个数组

<%

while not rsh2.eof

name1="'"&rsh2("city_sheng")&"'"//相关联的值

name2="'"&rsh2("city_name")&"'"

//取得第二级显示内容和菜单的值

%>

subcat[<%=m%>] = new Array(<%=name2%>,<%=name1%>,<%=name2%>)

//第一个元素标识一级,第二个元素是显示的内容,每三个为这个元素的值相当于value

<%

rsh2.movenext

m=m+1

x=x+1//计算选项元素的个数

wend

%>

var onecount

onecount=0

onecount=<%=x%>

function changelocation(locationid)

//这个函数是用来根据第一个下拉菜单来改变第二个下拉菜单的显示,locationid是一级下拉菜单的value值

{

document.myform.Nclassid.length = 0

//Nclassid为第二级下拉菜单的name,此句将第二级下拉菜单的长度清零,即当没有任何选择的时候,显示为空

var locationid=locationid//取得第一个下拉菜单的值

var i

for (i=0i <onecounti++)

{

if (subcat[i][1] == locationid)

//当二个下拉菜单的值等于第一个下拉菜单的关联值时,即建立option对象,生成第二级下拉菜单项

{

document.myform.Nclassid.options[document.myform.Nclassid.length] = new Option(subcat[i][0], subcat[i][2])

//当第二级菜单生成一个下拉项时,document.myform.Nclassid.length的值会自动增加,即会自动生成一个下拉菜单项,subcat[i][0]为option中的value,subcat[i][2]为option显示的值,在这里,这两个值是相同的

}

}

}

</script>

<form name="myform">

<tr>

<td><select name="classid" onChange="changelocation(document.myform.classid.options[document.myform.classid.selectedIndex].value)">

<%

'onChange是一个会根据内容改变而触发的事件,当select下拉菜单的内容改变了,就会执行changelocation()这个函数

'以下是通过数据库来取得第一个下拉菜单的显示内容和值

response.write"<option >请选择</option>"

set rs=server.createobject("adodb.recordset")

sql="select * from sheng order by sheng_id"

rs.open sql,conn,3,1

rs.movefirst

while not rs.eof

response.write "<option value="&rs("sheng")&">"&rs("sheng")&"</option>"

rs.movenext

wend

set rs=nothing

%>

</select></td>

<td width="31">市:</td><td width="55">

<select name="Nclassid">

</select></td></tr></form>

文件conn.asp 代码如下(也可以直接写到select.asp开头):

<%

set conn=server.createobject("adodb.connection")

dbpath=server.mappath("data.mdb")

connstr="Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &dbpath

conn.open connstr

%>

数据库:

表city:

表sheng:

说明:

'一个数据库中有两个表,一个是sheng表,里面保存着省的资料,这个表有两个字段,一个是sheng_id,这个ID是自动生成的,

'一个是sheng,是用来保存省份的名称.两个字段都为字符型,另外一个表是city里面保存着城市的资料,这个表有三个字段,

'一个是city_id,这个ID也是自动生成的,一个是city_name,是用来保存城市的名称的,一个是city_sheng,是用来这个城市所在的省

'这个字段也是让关联菜单能够关联起来的一个字段


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7367945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存