标题:help me !!!waiting online.....
只看楼主
mengya
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-11-8
 问题点数:0 回复次数:14 
help me !!!waiting online.....
请问:在同一个页面中,一个下拉框能用另一个下拉框的值吗?如果可以的话为什么下面的代码有错误呢?
<select size="1" class="style3" id="select" name=select >
<option selected>出租转让</option>
<option>积压物资</option>
<option>商务合作</option>
<option>求租求购</option>
</select>     
<select name="scid" size="1">
<%
dim bc
bc='"select.value"'
set rs0 =server.createobject("adodb.recordset")
sql0="select * from no1 where " no1name='"&bc&"'"
rs0.open sql0,conn,1,1
搜索更多相关主题的帖子: waiting online help 
2005-11-25 12:22
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
得分:0 

用JS调用,ASP是在服务器端执行的,你这样调用的方法也是不对的,就算可以也不能在客户端网成菜单的关联,可以先用循环将数据库的信息存贮在数组里,在用JS实现,我这有段代码,是管理无极限树菜单的程序,共你参考一下:

<%
dataurl=Server.MapPath("menutree.mdb")
dim conn,strQuery,rs
set conn = server.CreateObject("adodb.connection")
conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="&dataurl
strQuery="select * from menufun"
set rs=server.createobject("adodb.recordset")
rs.open strQuery,conn,1,1
allnum=rs.RecordCount
MaxLevel=1 '取得最多的层数
for i=1 to allnum
if rs("PartLevel")>MaxLevel then
MaxLevel=rs("PartLevel")
else
MaxLevel=MaxLevel
end if
rs.movenext
next
rs.close
set rs=nothing
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>菜单树管理</title>
<style type="text/css">
<!--
td {
font-size: 12px;
}
-->
</style>
</head>
<script language="javascript">
<!--
var onecount;
onecount=0;
subcat = new Array();
<%
strQuery="select * from menufun where sup_funcid<>'0' and enable<>0"
set rsfun=server.createobject("adodb.recordset")
rsfun.open strQuery,conn,1,1
numfun=rsfun.RecordCount
for j=1 to numfun
%>
subcat[<%=j%>] = new Array("<%=rsfun("funcname")%>","<%=rsfun("sup_funcid")%>","<%=rsfun("funcid")%>");
<%
rsfun.movenext
next
%>
onecount=<%=numfun+1%>;
function changelocation(locationid,fun_no){
document.all("Nclassid"+fun_no).length=0;
var locationid=locationid;
var i;
for(i=1;i<onecount;i++){
if (subcat[i][1] == locationid){
document.all("Nclassid"+fun_no).options[document.all("Nclassid"+fun_no).length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
var funcount
funcount=<%=MaxLevel%>
function disableds(fun_ji){
for(m=fun_ji;m<=funcount;m++){
if(m<=funcount){
document.all("Nclassid"+m).style.display="none";
}
}
}
function alldisableds(){
for(n=1;n<=funcount;n++){
document.all("Nclassid"+n).style.display="";
}
}
//-->
</script>
<body bgcolor="#6699CC" topmargin="0">
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>添加菜单项</td>
</tr>
</table>
<form name="myform" method="post" action="" style="margin:0">
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td align="right">菜单项名称:</td>
<td><input name="textfield" type="text" size="25"></td>
</tr>
<tr>
<td align="right">菜单级别:</td>
<td>
<%for i=1 to Maxlevel+1%><input type="radio" name="PartLevel" value="<%=i%>" onClick="javascript:disableds(<%=i%>)">[<b><%=i%></b>]级<%next%>
</td>
</tr>
<tr>
<td align="right">上级菜单:</td>
<td>
<select name="Nclassid1" id="Nclassid1" onChange="changelocation(document.myform.Nclassid1.options[document.myform.Nclassid1.selectedIndex].value,'2')">
<%
dim rsfun,numfun,funcidfun
strQuery1="select * from menufun where sup_funcid='0' and enable<>0"
set rsfun1=server.createobject("adodb.recordset")
rsfun1.open strQuery1,conn,1,1
numfun1=rsfun1.RecordCount
for k=1 to numfun1
%>
<option value="<%=rsfun1("funcid")%>"><%=rsfun1("funcname")%></option>
<%
rsfun1.movenext
next
rsfun1.close
set rsfun1=nothing
%>
</select>
<%
for i=2 to Maxlevel
if Maxlevel-i=0 then
response.Write("&nbsp;<select name='Nclassid"&i&"'>")
else
%>
<select name="Nclassid<%=i%>" onChange="javascript:changelocation(document.all('Nclassid<%=i%>').options[document.all('Nclassid<%=i%>').selectedIndex].value,'<%=i+1%>')">
<%
end if
%>
</select>
<%
next
%>
</td>
</tr>
<tr>
<td align="right">指向目标:</td>
<td><input name="textfield2" type="text" size="30"></td>
</tr>
<tr>
<td></td>
<td>
<input type="button" name="Submit1" value="确定">
<input type="button" name="Submit2" value="放弃">
<input type="button" name="Submit3" value="恢复" onClick="javascript:alldisableds()">
</td>
</tr>
</table>
</form>
</body>
</html>
相关文章:无极限树http://www.bc-cn.net/bbs/dispbbs.asp?boardID=10&ID=35004&page=1

[此贴子已经被作者于2005-11-25 12:32:39编辑过]


专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2005-11-25 12:31
mengya
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-11-8
得分:0 
好深奥呀,偶不懂,偶是初学者....
能就我的问题给解决一下吗??呵呵....先谢啦!!

2005-11-25 12:37
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
得分:0 

<%
dataurl=Server.MapPath("数据库名")
dim conn,strQuery,rs
set conn = server.CreateObject("adodb.connection")
conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="&dataurl
strQuery="select * from no1"
set rs=server.createobject("adodb.recordset")
rs.open strQuery,conn,1,1
allnum=rs.RecordCount
rs.close
set rs=nothing
%>
<script language="javascript">
<!--
var onecount;
onecount=0;
subcat = new Array();
<%
for j=1 to allnum
%>
subcat[<%=j%>] = new Array("<%=rs("name")%>","<%=rs("no1name")%>","<%=rsfun("id")%>");
<%
rsfun.movenext
next
%>
onecount=<%=allnum+1%>;
function changelocation(locationid){
document.all("scid").length=0;
var locationid=locationid;
var i;
for(i=1;i<onecount;i++){
if (subcat[i][1] == locationid){
document.all("scid").options[document.all("scid").length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
//-->
</script>
<select size="1" class="style3" id="select" name="select" onChange="changelocation(document.all('select').options[document.(document.all('select').selectedIndex].value)">
<option value="" selected>出租转让</option>
<option value="" >积压物资</option>
<option value="" >商务合作</option>
<option value="" >求租求购</option>
</select>     
<select name="scid" size="1"></select>
注意的是:数据库中的字段 no1name 的值必须和 select 中的值对应,也就是说<option value="1" selected>出租转让</option>,当选册该项后就会把数组subcat[]中第二个值等于subcat[][1][]=1的数组元素重新赋给 scid 下拉列表

[此贴子已经被作者于2005-11-25 13:04:25编辑过]


专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2005-11-25 13:03
mengya
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-11-8
得分:0 
好的,我试试吧,谢谢你啦!!!

2005-11-25 13:10
mengya
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-11-8
得分:0 

我感觉你是理解错了我的意思了吧::

<select size="1" class="style3" id="select2" name=select >
<option selected value=出租转让 >出租转让</option>
<option value=积压物资>积压物资</option>
<option value=商务合作>商务合作</option>
<option value=求租求购>求租求购</option>
</select> 
 //这个select 的值供下面的select使用   
<select name="scid" size="1">
<%
dim bc
bc='select.value' //使用该值
set rs0 =server.createobject("adodb.recordset")
sql0="select * from no1 where " no1name='"&bc&"'"
rs0.open sql0,conn,1,1

set rs =server.createobject("adodb.recordset")
sql="select * from no2 where no1id='"&rs0("no1id")&"'"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.Write "<option selected>请选择类别</option>"  
else
do while not rs.eof
response.Write "<option value="&rs("no2id")&">"&rs("no2name")&"</option>"
rs.movenext
Loop
end if
%>
</select>
<%
rs.close
rs0.close
set rs=nothing
set rs0=nothing
%>

[此贴子已经被作者于2005-11-25 13:39:02编辑过]


2005-11-25 13:31
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
得分:0 
要提交后才行哦~~

2005-11-25 13:37
mengya
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-11-8
得分:0 

那么在一个页面中一个select 不可以取另一个select的值吗? (:
 不可以用select名.value取值吗?


2005-11-25 13:44
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
得分:0 

在JS中可以
在ASP中就不行了


2005-11-25 13:50
mengya
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-11-8
得分:0 
哦,那如果我想那样用的话应该怎么办呀,但是要求必须在同一个页面中呀?!

2005-11-25 13:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-35106-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.341252 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved