建立动态下拉式选单(三阶层)
程序员文章站
2022-12-06 20:21:43
建立动态下拉式选单 (三阶层) <%将资料库连结字串, sql 叙述,形成第一个表单字串变数 (colorlist),第一个表单名称 color,形成第二个表单字串变数 (fruitlist)...
建立动态下拉式选单 (三阶层)
<%将资料库连结字串, sql 叙述,形成第一个表单字串变数 (colorlist),第一个表单名称 color,形成第二个表单字串变数 (fruitlist),第二一个表单名称 fruit,形成第三个表单字串变数 (pricelist),第三个表单名称 price,等资讯透过呼叫副程式的方式经过处理之后再传回主程式中,请注意有某几个参数是以 byref 的方式传回主程式,而某些参数是以 byval 的方式传回的紫色粗体字代表是 byref。请直接观看底下副程式的部分
mydsn="provider=sqloledb; data source=jackal; initial catalog=pubs; user id=sa; password="
strsql="select color.color, fruit.fruit, price.cost from color join fruit on color.id=fruit.colorid join price on price.fruitid=fruit.id order by color.id"
call listmaker(mydsn, strsql, colorlist,"color", fruitlist ,"fruit", pricelist, "price", pubevent, pubfun, "myform")%><form name="myform" method=post action=listbox2.>
颜色:
<%= colorlist%>
<br>
水果:
<%= fruitlist%>
<br>
价格:
<%= pricelist%>
<input type=submit value="送出">
</form>
<script language="javascript"><!--
<%=pubevent%>
<%=pubfun%>
--></script>
<%
sub listmaker(mydsn, strsql,byref list1, listname1, byref list2, listname2, byref list3, listname3, byref myevent, byref myfun, myform)
set my_conn = server.createobject("adodb.connection")
my_conn.open mydsn
set rs=my_conn.execute(strsql)
利用 colorlist 字串变数来建立第一个下拉式选单的 html 原始码。
colorlist="<select name=" & listname1
colorlist=colorlist & " onchange=""buildkey"
colorlist=colorlist & "(this.selectedindex);"">"
利用 fruitlist 字串变数来建立第二个下拉式选单的 html 原始码。
fruitlist="<select name=" & listname2
fruitlist=fruitlist & " onchange=""buildkey1"
fruitlist=fruitlist & "(this.selectedindex);"">"
利用 pricelist 字串变数来建立第三个下拉式选单的 html 原始码。
pricelist="<select name=" & listname3 & ">"
在这里初始某些变数值,当作底下执行运算时之旗标值。
loopcounter=0
lastvalue=rs(0)
lastvalue2=rs(1)
redim temparray(1)
thisgroupcount 代表某种颜色共有几种水果
thisgroupcount=0
thissubgroupcount 代表某种水果共有几种价格,当水果变换时 thissubgroupcount 会归零,并重新累加。
thissubgroupcount=0
howmanygroups 代表共有几种颜色
howmanygroups=0
howmanysubgroups 代表共有几种水果,当颜色变换时 howmanysubgroups 会归零,并重新累加。
howmanysubgroups=0
do until rs.eof
thisvalue=rs(0)
thisvalue2=rs(1)
thisvalue3=rs(2)
如果发现水果名称改变,而且目前水果是某种颜色的第一种水果时,譬如:红色←苹果 或:黄色←柳丁时就在 script 中加上颜色标记 (为了让大家更容易将 script 区隔开来),然后再将水果名称定义到 key 阵列值,
接着再定义 key1[第几种颜色][第几种水果] 之阵列长度。
if thisvalue2<>lastvalue2 then
if howmanysubgroups=0 then
tempstr1=tempstr1 & "// " & lastvalue & vbcrlf
tempstr2=tempstr2 & "// " & lastvalue & vbcrlf
end if
tempstr2=tempstr2 & "key1[" & howmanygroups & "][" & howmanysubgroups &
"]=new array(" & thissubgroupcount & ");" & vbcrlf
<%将资料库连结字串, sql 叙述,形成第一个表单字串变数 (colorlist),第一个表单名称 color,形成第二个表单字串变数 (fruitlist),第二一个表单名称 fruit,形成第三个表单字串变数 (pricelist),第三个表单名称 price,等资讯透过呼叫副程式的方式经过处理之后再传回主程式中,请注意有某几个参数是以 byref 的方式传回主程式,而某些参数是以 byval 的方式传回的紫色粗体字代表是 byref。请直接观看底下副程式的部分
mydsn="provider=sqloledb; data source=jackal; initial catalog=pubs; user id=sa; password="
strsql="select color.color, fruit.fruit, price.cost from color join fruit on color.id=fruit.colorid join price on price.fruitid=fruit.id order by color.id"
call listmaker(mydsn, strsql, colorlist,"color", fruitlist ,"fruit", pricelist, "price", pubevent, pubfun, "myform")%><form name="myform" method=post action=listbox2.>
颜色:
<%= colorlist%>
<br>
水果:
<%= fruitlist%>
<br>
价格:
<%= pricelist%>
<input type=submit value="送出">
</form>
<script language="javascript"><!--
<%=pubevent%>
<%=pubfun%>
--></script>
<%
sub listmaker(mydsn, strsql,byref list1, listname1, byref list2, listname2, byref list3, listname3, byref myevent, byref myfun, myform)
set my_conn = server.createobject("adodb.connection")
my_conn.open mydsn
set rs=my_conn.execute(strsql)
利用 colorlist 字串变数来建立第一个下拉式选单的 html 原始码。
colorlist="<select name=" & listname1
colorlist=colorlist & " onchange=""buildkey"
colorlist=colorlist & "(this.selectedindex);"">"
利用 fruitlist 字串变数来建立第二个下拉式选单的 html 原始码。
fruitlist="<select name=" & listname2
fruitlist=fruitlist & " onchange=""buildkey1"
fruitlist=fruitlist & "(this.selectedindex);"">"
利用 pricelist 字串变数来建立第三个下拉式选单的 html 原始码。
pricelist="<select name=" & listname3 & ">"
在这里初始某些变数值,当作底下执行运算时之旗标值。
loopcounter=0
lastvalue=rs(0)
lastvalue2=rs(1)
redim temparray(1)
thisgroupcount 代表某种颜色共有几种水果
thisgroupcount=0
thissubgroupcount 代表某种水果共有几种价格,当水果变换时 thissubgroupcount 会归零,并重新累加。
thissubgroupcount=0
howmanygroups 代表共有几种颜色
howmanygroups=0
howmanysubgroups 代表共有几种水果,当颜色变换时 howmanysubgroups 会归零,并重新累加。
howmanysubgroups=0
do until rs.eof
thisvalue=rs(0)
thisvalue2=rs(1)
thisvalue3=rs(2)
如果发现水果名称改变,而且目前水果是某种颜色的第一种水果时,譬如:红色←苹果 或:黄色←柳丁时就在 script 中加上颜色标记 (为了让大家更容易将 script 区隔开来),然后再将水果名称定义到 key 阵列值,
接着再定义 key1[第几种颜色][第几种水果] 之阵列长度。
if thisvalue2<>lastvalue2 then
if howmanysubgroups=0 then
tempstr1=tempstr1 & "// " & lastvalue & vbcrlf
tempstr2=tempstr2 & "// " & lastvalue & vbcrlf
end if
tempstr2=tempstr2 & "key1[" & howmanygroups & "][" & howmanysubgroups &
"]=new array(" & thissubgroupcount & ");" & vbcrlf
上一篇: SLA的基本概念
下一篇: Oracle基础教学:各类语句及函数讲解