急,急,急,怎么实现一个下拉框的内容变化,另一个下拉框的内容也变化啊??

jiayanzhaoyin 2004-09-01 10:09:55
怎么实现一个下拉框的内容变化,
两个下拉框的内容都是从数据库里取的,


另一个下拉框的内容也变化啊??
...全文
265 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjc2020 2004-09-01
  • 打赏
  • 举报
回复
VBscript写的太麻烦,还是JavaScript好
zhushizu 2004-09-01
  • 打赏
  • 举报
回复
是呀,我也是想了好久。。关注中。。。
chang1216 2004-09-01
  • 打赏
  • 举报
回复
<%
set Re = Server.CreateObject("ADODB.Recordset")
Re.ActiveConnection = conn
Re.Source = "select distinct (year(datetime)),(month(datetime)),(day(datetime)) from salt_water_day"
Re.CursorType = 0
Re.CursorLocation = 2
Re.LockType = 3
Re.Open()
Re_numRows = 0
%>
<%
CALL listmaker(aalist,"menu1", sslist ,"menu2", ddlist, "menu3", pubevent, pubfun, "myForm")
%>
<table width="412" border="0" cellspacing="0" cellpadding="3" align="center">
<tr>
<td width="82"> <div align="left"><font size="2">请选择:
年</font></div>
<div align="left"><font size="2"> </font></div></td>
<td width="22"><font size="2"><%= aalist%></font></td>
<td width="20">月</td>
<td width="38"><font size="2"><%= sslist%></font></td>
<td width="27">日</td>
<td width="46"><font size="2"><%= ddlist%></font></td>
<td width="135"><font size="2">
<input type=submit value="提交" name="submit2">
</font></td>
</tr>
</table>

<SCRIPT Language="JavaScript"><!--

<%=pubevent%>
<%=pubfun%>
--></Script>
<%

SUB listmaker(byref list1, listname1, byref list2, listname2, byref list3, listname3, byref myevent, byref myfun, myForm)
aalist="<select name=" & listname1
aalist=aalist & " OnChange=""Buildkey"
aalist=aalist & "(this.selectedIndex);"">"
sslist="<select name=" & listname2
sslist=sslist & " OnChange=""Buildkey1"
sslist=sslist & "(this.selectedIndex);"">"
ddlist="<select name=" & listname3 & ">"
loopcounter=0
lastvalue=Re(0)
lastvalue2=Re(1)
redim tempArray(1)
thisgroupcount=0
thissubgroupcount=0
howmanygroups=0
howmanysubgroups=0
DO UNTIL Re.eof
thisvalue=Re(0)
thisvalue2=Re(1)
thisvalue3=Re(2)

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
tempSTR1=tempSTR1 & "key[" & howmanygroups & "][" & howmanysubgroups &"]=""" & lastvalue2 & """;" & vbCRLF
howmanysubgroups=howmanysubgroups+1
thissubgroupcount=0
lastvalue2=thisvalue2
end if

if thisvalue<>lastvalue then
tempSTR=tempSTR & "key[" & howmanygroups & "]=new Array(" & howmanysubgroups & ");" & _
vbcrlf
tempSTR=tempSTR & "key1[" & howmanygroups & "]=new Array(" & howmanysubgroups & ");" & _
vbcrlf
thisgroupcount=0
howmanygroups=howmanygroups+1
howmanysubgroups=0
end if

if thisgroupcount=0 then
aalist =aalist & "<option>" & thisvalue & "</option>" & vbcrlf
end if

if thissubgroupcount=0 then
tempSTR3=tempSTR3 & "// " & lastvalue2 & vbcrlf
end if

tempSTR3=TempSTR3 & "key1[" & howmanygroups & "][" & howmanysubgroups & "][" & thissubgroupcount & "]=""" & thisvalue3 & """;" & vbCRLF

if howmanygroups=0 then
If thissubgroupcount=0 then
sslist = sslist & "<option>" & thisvalue2 & "</option>" & vbcrlf
end if
End If

if howmanygroups=0 then
if howmanysubgroups=0 then
ddlist = ddlist & "<option>" & thisvalue3 & "</option>" & vbcrlf
end if
End if

thisgroupcount=thisgroupcount+1
thissubgroupcount=thissubgroupcount+1
lastvalue=thisvalue
loopcounter=loopcounter+1
Re.movenext

LOOP
tempSTR=tempSTR & "key[" & howmanygroups & _
"]=new Array(" & howmanysubgroups+1 & ");" & _
vbcrlf
tempSTR=tempSTR & "key1[" & howmanygroups & _
"]=new Array(" & howmanysubgroups+1 & ");" & _
vbcrlf

tempSTR2=TempSTR2 &"key1[" & howmanygroups & "][" & howmanysubgroups & "]=new Array(" & thissubgroupcount & ");" & _
vbcrlf
tempSTR1= TempSTR1 & "key[" & howmanygroups & "][" & howmanysubgroups & "]=""" & lastvalue2 & """;" & vbCRLF
tempSTR=tempSTR & TempSTR1 & TempSTR2 & tempSTR3

aalist=aalist & "</select>"

sslist= sslist & "</select>"

ddlist= ddlist & "</select>"


myevent=vbcrlf & "key=new Array(" & howmanygroups+1 & ");"
myevent=myevent & vbcrlf & "key1=new Array(" & howmanygroups+1
myevent=myevent & ");" & vbcrlf & tempSTR




tempSTR =vbcrlf & "function Buildkey" & "(num)" & vbcrlf
tempSTR =tempSTR & "{" & vbcrlf
tempSTR =tempSTR & "Buildkey1(0);" & vbcrlf
tempSTR =tempSTR & "document." & myForm & "."
tempSTR =tempSTR & listname2 & ".selectedIndex=0;" & vbcrlf
tempSTR =tempSTR & "for(ctr=0;ctr<key[num].length;ctr++)" & vbcrlf
tempSTR =tempSTR & "{" & vbcrlf
tempSTR =tempSTR & "document." & myform & "." & listname2
tempSTR =tempSTR & ".options[ctr]=new Option(key[num][ctr],"
tempSTR =tempSTR & "key[num][ctr]);" & vbcrlf
tempSTR =tempSTR & "}" & vbcrlf
tempSTR =tempSTR & "document." & myForm & "." & listname2
tempSTR =tempSTR & ".length=key[num].length;" & vbcrlf
tempSTR =tempSTR & "}" & vbcrlf

tempSTR =tempSTR & vbcrlf & "function Buildkey1" & "(num)" & vbcrlf
tempSTR =tempSTR & "{" & vbcrlf
tempSTR =tempSTR & "document." & myForm & "."
tempSTR =tempSTR & listname3 & ".selectedIndex=0;" & vbcrlf
tempSTR =tempSTR & "for(ctr=0;ctr<key1[document.myForm.menu1.selectedIndex][num].length;ctr++)" & vbcrlf
tempSTR =tempSTR & "{" & vbcrlf
tempSTR =tempSTR & "document." & myform & "." & listname3
tempSTR =tempSTR & ".options[ctr]=new Option(key1[document.myForm.menu1.selectedIndex][num][ctr],"
tempSTR =tempSTR & "key1[document.myForm.menu1.selectedIndex][num][ctr]);" & vbcrlf
tempSTR =tempSTR & "}" & vbcrlf
tempSTR =tempSTR & "document." & myForm & "." & listname3
tempSTR =tempSTR & ".length=key1[document.myForm.menu1.selectedIndex][num].length;" & vbcrlf
tempSTR =tempSTR & "}" & vbcrlf
myfun=tempSTR


END sub
%>
</body>
</html>
<%
Re.Close()
%>
提交表单 <form name="myForm" method="post" action="#.asp">
凋零的老树 2004-09-01
  • 打赏
  • 举报
回复
<SCRIPT language=JavaScript>
SubMenuinfo = new Array(
new Array(
new Array("工人", "工人"),
new Array("企事业负责人", "企事业负责人"),
new Array("职员", "职员"),
new Array("科技人员", "科技人员"),
new Array("律师", "律师"),
new Array("公务员", "公务员"),
new Array("农民", "农民"),
new Array("军人", "军人"),
new Array("医生", "医生"),
new Array("教师", "教师"),
new Array("商业人员", "商业人员"),
new Array("服务人员", "服务人员"),
new Array("文体人员", "文体人员"),
new Array("个体劳动者", "个体劳动者"),
new Array("无业人员", "无业人员"),
new Array("其他人员", "其他人员"),
new Array("学生", "学生")
),
new Array(
new Array("社团", "社团"),
new Array("部委", "部委"),
new Array("教育", "教育"),
new Array("科研", "科研"),
new Array("驻华机构", "驻华机构"),
new Array("国内公司", "国内公司"),
new Array("三资企业", "三资企业"),
new Array("信息服务", "信息服务"),
new Array("新闻机构", "新闻机构"),
new Array("外国商社", "外国商社"),
new Array("金融", "金融"),
new Array("政府机关", "政府机关"),
new Array("军事", "军事"),
new Array("其他", "其他")
),
new Array(
new Array("工人", "工人"),
new Array("企事业负责人", "企事业负责人"),
new Array("职员", "职员"),
new Array("科技人员", "科技人员"),
new Array("律师", "律师"),
new Array("公务员", "公务员"),
new Array("农民", "农民"),
new Array("军人", "军人"),
new Array("医生", "医生"),
new Array("教师", "教师"),
new Array("商业人员", "商业人员"),
new Array("服务人员", "服务人员"),
new Array("文体人员", "文体人员"),
new Array("个体劳动者", "个体劳动者"),
new Array("无业人员", "无业人员"),
new Array("其他人员","其他人员"),
new Array("学生", "学生")
),
//主分类3没有子分类,用null;
new Array(
new Array("工人", "工人"),
new Array("企事业负责人", "企事业负责人"),
new Array("职员", "职员"),
new Array("科技人员", "科技人员"),
new Array("律师", "律师"),
new Array("公务员", "公务员"),
new Array("农民","农民"),
new Array("军人", "军人"),
new Array("医生", "医生"),
new Array("教师", "教师"),
new Array("商业人员", "商业人员"),
new Array("服务人员", "服务人员"),
new Array("文体人员", "文体人员"),
new Array("个体劳动者", "个体劳动者"),
new Array("无业人员", "无业人员"),
new Array("其他人员", "其他人员"),
new Array("学生", "学生")
),
new Array(
new Array("社团", "社团"),
new Array("部委", "部委"),
new Array("教育", "教育"),
new Array("科研", "科研"),
new Array("驻华机构", "驻华机构"),
new Array("国内公司", "国内公司"),
new Array("三资企业", "三资企业"),
new Array("信息服务", "信息服务"),
new Array("新闻机构", "新闻机构"),
new Array("外国商社", "外国商社"),
new Array("金融", "金融"),
new Array("政府机关", "政府机关"),
new Array("军事","军事"),
new Array("其他", "其他")
),
new Array(
new Array("社团", "社团"),
new Array("部委", "部委"),
new Array("教育", "教育"),
new Array("科研", "科研"),
new Array("驻华机构", "驻华机构"),
new Array("国内公司", "国内公司"),
new Array("三资企业", "三资企业"),
new Array("信息服务", "信息服务"),
new Array("新闻机构", "新闻机构"),
new Array("外国商社", "外国商社"),
new Array("金融", "金融"),
new Array("政府机关", "政府机关"),
new Array("军事","军事"),
new Array("其他", "其他")
),
new Array(
new Array("社团", "社团"),
new Array("部委", "部委"),
new Array("教育", "教育"),
new Array("科研", "科研"),
new Array("驻华机构", "驻华机构"),
new Array("国内公司", "国内公司"),
new Array("三资企业", "三资企业"),
new Array("信息服务", "信息服务"),
new Array("新闻机构", "新闻机构"),
new Array("外国商社", "外国商社"),
new Array("金融", "金融"),
new Array("政府机关", "政府机关"),
new Array("军事","军事"),
new Array("其他", "其他")
)
);
function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) {
var i, j;
var prompt;
for (i = selectCtrl.options.length; i >= 0; i--) {
selectCtrl.options[i] = null;
}
prompt = (itemArray != null) ? goodPrompt : badPrompt;
if (prompt == null) {
j = 0;
}
else {
selectCtrl.options[0] = new Option(prompt);
j = 1;
}
if (itemArray != null) {
for (i = 0; i < itemArray.length; i++) {
selectCtrl.options[j] = new Option(itemArray[i][0]);
if (itemArray[i][1] != null) {
selectCtrl.options[j].value = itemArray[i][1];
}
j++;
}
selectCtrl.options[0].selected = true;
}
}
</SCRIPT>
凋零的老树 2004-09-01
  • 打赏
  • 举报
回复
<select name="selectname" onchange="fillSelectFromArray(this.form.another_select, ((this.selectedIndex == -1) ? null : SubMenuinfo[this.selectedIndex-1]));fun_zh();">
<option value="-1"></option>
</select>
meizz 2004-09-01
  • 打赏
  • 举报
回复
<%@ Language=VBScript codepage=936 %>
<% Option Explicit %>
<!-- 数据库结构 两个字段 provinceName(省名) cityName(城市名) -->
<!-- #include file="connection.asp" -->
<script language=javascript>
<%
dim RS
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "SELECT * FROM tableName ORDER BY provinceName DESC", Conn, 0, 1

dim provinceName '省名
dim provinceList '记录所有的省名, 最后输出到JS里组成省名数组
dim cityList '记录某个省的所有城市名, 最后输出到JS里组成城市名数组
dim cityIndex 'JS的city数组名与省名下拉框的索引对应
cityIndex = 1

do while not RS.eof
if isEmpty(provinceName) then
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
provinceName = Trim(RS("provinceName"))
else
if provinceName<>Trim(RS("provinceName")) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
if not isEmpty(cityList) then Response.write "var city"& cityIndex &_
" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
'输出每个省所对应的城市名的列表并组成JS的数组, 数组形式参考下面的实例
cityIndex = cityIndex + 1
cityList = ""
end if
provinceName = Trim(RS("provinceName"))
cityList = cityList & chr(34) & Trim(RS("cityName")) & chr(34) &","
'将每个省里的所有城市名组成一串字串
end if
RS.movenext
loop

if not isEmpty(cityList) then
Response.write "var city"& cityIndex &" = ["& Left(cityList, Len(cityList)-1) &"];"& VBCrLf
end if
if not isEmpty(provinceName) then
provinceList = provinceList & chr(34) & provinceName & chr(34) &","
Response.write "var provinceName = ["& Left(provinceList, Len(provinceList)-1) &"];"
'输出省名字串并组成省名的JS数组, 形式见下实例
end if

RS.close : Set RS=nothing
Conn.close : Set Conn=nothing
%>
</script>

<form name=form1>
<select name=province onchange="cityName(this.selectedIndex)">
<option value="">请选择省名</option>
</select>

<select name=city>
<option value="">请选择城名</option>
</select>
</form>

<script language=javascript>

/* 若要直接看下拉框联动效果的话, 将这段被注释的代码起用, 且上面的那段ASP注释即可
var provinceName = ["浙江", "江苏", "安徽", "江西"];
var city1 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
var city2 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
var city3 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
var city4 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"];
//你在ASP输出的页面里应该看到如上这般的JS数组, 能看到则表示成功
*/


function province()
{

var e = document.form1.province;
for (var i=0; i<provinceName.length; i++)
e.options.add(new Option(provinceName[i], provinceName[i]));
}
function cityName(n)
{
var e = document.form1.city;
e.options.length = 1;
if (n == 0) return;
var a = eval("city"+ n); //得到城市的数组名
for (var i=0; i<a.length; i++) e.options.add(new Option(a[i], a[i]));
}
window.attachEvent("onload", province); //初始时给省名下拉框赋内容
</script>
zltostem 2004-09-01
  • 打赏
  • 举报
回复
<script language="javascript">
<!--
var i;

A = ["a","b","c","d","e"];
a1 = ["ab","ac","ad","ae"];
a2 = ["bc","bd","be"];
a3 = ["cd","ce","cf","cg","ch"]
a4 = ["de","df","dg","dh","di"];
a5 = ["ef","eg","eh"];

function init1()
{
for(i=0;i<A.length;i++)
{
S1.options[S1.length]=new Option(A[i],A[i]);
}
}

function init2(n)
{
var strNote = eval('a'+n);
if(n == 0) return;
S2.options.length=1;
for(i=0;i<strNote.length;i++)
{
S2.options.add(new Option(strNote[i],strNote[i]));
}
}
//-->
</script>

<body onload="init1()">
<select name=S1 onchange="init2(this.selectedIndex)"><option>--请选择--</select>
<select name=S2><option>--请选择--</select>
</body>

...
xihasky 2004-09-01
  • 打赏
  • 举报
回复

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧