再问一个关于联动菜单的问题

zjw81019 2008-09-05 09:05:24
联动菜单问题
我找到了一个可以用的二级下拉菜单,由于我页面里可能要用到好几个二级下来单,不知道会不会冲突?应该怎么改?代码如下:

<%
dim conn,connstr,db
db="database.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr
If Err then
Err.Clear
Set conn = Nothing
Response.write "系统调整中......请稍候再试!!"
Response.End
End If

dim rs
dim sql
dim count
set rs=server.createobject("adodb.recordset")
sql = "select * from [Product_Type] order by iPT_ID asc"
rs.open sql,conn,1,1
%>
<script language = "JavaScript">

var onecount;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("sPT_Name"))%>","<%= trim(rs("iPT_PC_Name"))%>","<%= trim(rs("sPT_Name"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;

function changelocation(locationid)
{
document.myform.SmallClassName.length = 1;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.SmallClassName.options[document.myform.SmallClassName.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}

</script>

</head>

<body>
<form method="post" name="myform">
<%
sql = "select * from [Product_Class]"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write "请先添加栏目。"
else
%>
<select name="BigClassName" onChange="changelocation(document.myform.BigClassName.options[document.myform.BigClassName.selectedIndex].value)" size="1">
<option selected value="">请选择大类</option>
<%
do while not rs.eof
%>
<option value="<%=trim(rs("sPC_Name"))%>"><%=trim(rs("sPC_Name"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select>
<select name="SmallClassName">
<option value="" selected>选择小类</option>
<%
sql="select * from [Product_Type]"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
do while not rs.eof
%>
<option value="<%=rs("sPT_Name")%>"><%=rs("sPT_Name")%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</form>
</body>
...全文
117 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sy_binbin 2008-09-09
  • 打赏
  • 举报
回复
看看你的JS错误是什么

按照我的那个思路好好检查下你的表单名,JS的变量什么的
zjw81019 2008-09-09
  • 打赏
  • 举报
回复
按9楼兄弟的也不行,第一组是正常的,第二组就不能用了
zjw81019 2008-09-07
  • 打赏
  • 举报
回复
楼上的能否告诉我具体怎么搞,我这两天都快疯了。
谢谢了
b246347b 2008-09-07
  • 打赏
  • 举报
回复
为什么不用DR做?很简单啊!那有插件久是多建几张表的问题!
汗啊!
  • 打赏
  • 举报
回复
呵呵,不管你多少组,就是做不同的函数,调用不同的函数和变量,记得变量名也要不一样
sy_binbin 2008-09-07
  • 打赏
  • 举报
回复
我已经告诉你怎么去做了!
sy_binbin 2008-09-07
  • 打赏
  • 举报
回复
<%
dim conn,connstr,db
db="database.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr

dim rs
dim sql
dim count
set rs=server.createobject("adodb.recordset")
sql = "select * from [Product_Type] order by iPT_ID asc"
rs.open sql,conn,1,1
%>
<script language = "JavaScript">

var onecount;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[ <%=count%>] = new Array(" <%= trim(rs("sPT_Name"))%>"," <%= trim(rs("iPT_PC_Name"))%>"," <%= trim(rs("sPT_Name"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount= <%=count%>;

function changelocation(locationid)
{
document.myform.SmallClassName.length = 1;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.SmallClassName.options[document.myform.SmallClassName.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}



function changelocation1(locationid)
{
document.myform1.SmallClassName1.length = 1;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform1.SmallClassName1.options[document.myform1.SmallClassName1.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}

</script>

</head>

<body>
<form method="post" name="myform">
<%
sql = "select * from [Product_Class]"
rs.open sql,conn,1,1
%>
<select name="BigClassName" onChange="changelocation(document.myform.BigClassName.options[document.myform.BigClassName.selectedIndex].value)" size="1">
<option selected value="">请选择大类 </option>
<%
do while not rs.eof
%>
<option value=" <%=trim(rs("sPC_Name"))%>"> <%=trim(rs("sPC_Name"))%> </option>
<%
rs.movenext
loop
rs.close
%>
</select>
<select name="SmallClassName">
<option value="" selected>选择小类 </option>
<%
sql="select * from [Product_Type]"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
do while not rs.eof
%>
<option value=" <%=rs("sPT_Name")%>"> <%=rs("sPT_Name")%> </option>
<%
rs.movenext
loop
end if
rs.close
%>
</form>
<p>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ </p>
<form method="post" name="myform1" id="myform1">
<%
sql = "select * from [Product_Class]"
rs.open sql,conn,1,1
%>
<select name="BigClassName1" onChange="changelocation1(document.myform1.BigClassName1.options[document.myform1.BigClassName1.selectedIndex1].value)" size="1">
<option>请选择大类 </option>
<%
do while not rs.eof
%>
<option value=" <%=trim(rs("sPC_Name"))%>"> <%=trim(rs("sPC_Name"))%> </option>
<%
rs.movenext
loop
rs.close
%>
</select>
<select name="SmallClassName1">
<option value="" selected>选择小类 </option>
<%
sql="select * from [Product_Type]"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
do while not rs.eof
%>
<option value=" <%=rs("sPT_Name")%>"> <%=rs("sPT_Name")%> </option>
<%
rs.movenext
loop
end if
rs.close
%>
</form>
zjw81019 2008-09-07
  • 打赏
  • 举报
回复
<%
dim conn,connstr,db
db="database.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr

dim rs
dim sql
dim count
set rs=server.createobject("adodb.recordset")
sql = "select * from [Product_Type] order by iPT_ID asc"
rs.open sql,conn,1,1
%>
<script language = "JavaScript">

var onecount;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("sPT_Name"))%>","<%= trim(rs("iPT_PC_Name"))%>","<%= trim(rs("sPT_Name"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;

function changelocation(locationid)
{
document.myform.SmallClassName.length = 1;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.SmallClassName.options[document.myform.SmallClassName.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}

</script>

</head>

<body>
<form method="post" name="myform">
<%
sql = "select * from [Product_Class]"
rs.open sql,conn,1,1
%>
<select name="BigClassName" onChange="changelocation(document.myform.BigClassName.options[document.myform.BigClassName.selectedIndex].value)" size="1">
<option selected value="">请选择大类</option>
<%
do while not rs.eof
%>
<option value="<%=trim(rs("sPC_Name"))%>"><%=trim(rs("sPC_Name"))%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
<select name="SmallClassName">
<option value="" selected>选择小类</option>
<%
sql="select * from [Product_Type]"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
do while not rs.eof
%>
<option value="<%=rs("sPT_Name")%>"><%=rs("sPT_Name")%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</form>
<p>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\</p>
<form method="post" name="myform1" id="myform1">
<%
sql = "select * from [Product_Class]"
rs.open sql,conn,1,1
%>
<select name="BigClassName1" onChange="changelocation(document.myform1.BigClassName1.options[document.myform1.BigClassName1.selectedIndex1].value)" size="1">
<option>请选择大类</option>
<%
do while not rs.eof
%>
<option value="<%=trim(rs("sPC_Name"))%>"><%=trim(rs("sPC_Name"))%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
<select name="SmallClassName1">
<option value="" selected>选择小类</option>
<%
sql="select * from [Product_Type]"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
do while not rs.eof
%>
<option value="<%=rs("sPT_Name")%>"><%=rs("sPT_Name")%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</form>
这是我的代码,运行的结果是:第一组联动菜单正常,第二组就不行了
sy_binbin 2008-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zjw81019 的回复:]
好像不行,郁闷中。。。。。。。。。。。。
[/Quote]


怎么不行了???
sayfree 2008-09-06
  • 打赏
  • 举报
回复
注意这么几点:JavaScript区分大小写,所以在JavaScript中对应的对象名称必须与html中的名字完全相同,其次,名称不能重复,否则的话,调用也不会成功。
我开始测试二级联动的时候,也是好久没有通过,也曾在网上发帖求助,最后还是自己解决的,原来在html中,表单的名字是form1,在JavaScript的函数中却是Form1.....
zjw81019 2008-09-06
  • 打赏
  • 举报
回复
好像不行,郁闷中。。。。。。。。。。。。
sy_binbin 2008-09-05
  • 打赏
  • 举报
回复
多个联动菜单阿!

那就把
<script language = "JavaScript">

var onecount;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[ <%=count%>] = new Array(" <%= trim(rs("sPT_Name"))%>"," <%= trim(rs("iPT_PC_Name"))%>"," <%= trim(rs("sPT_Name"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount= <%=count%>;

function changelocation(locationid)
{
document.myform.SmallClassName.length = 1;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.SmallClassName.options[document.myform.SmallClassName.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}

</script>
这段代码再写一次,注意变量,表单名的命名啊!!
PhpCms2008是国内领先的网站内容管理系统,同时也是一个开源的PHP开发框架。Phpcms由内容模型、会员、吧、视频、企业黄页、采集、专题、财务、订单、广告、邮件订阅、短消息、自定义表单、全站搜索等20多个功能模块组成,内置新闻、图片、下载、信息、产品5大内容模型。Phpcms 采用模块化开发,支持自定义内容模型和会员模型,并且可以自定义字段。 PhpCms2008 SP4 110121 更新内容: 1、删除构造函数,解决Redefining already defined constructor for class 2、更新标签选择栏目,子栏目无法显示 3、admin/template.inc.php 写错单词 模板管理 BUG 4、添加栏目名称判断错误! 5、会员组无法排序BUG 6、IE 8 兼容模式 7、重复收费设置无效,支付后会重复收费 8、支付重复收费时间设置无效 9、扩展会员组会员数目显示、只显示没有过期的用户,过期用户不统计,导致的数据不统一 10、支持多关键字 逗号分隔 和 空格分隔,适合英文站点。解决英文名称之间存在空格时,把一个关键字当作多个关键字的 11、附件上传支持ftp方式上传 12、广告统计分表存储 完成(数据统计部分) 13、ftp上传图片生成缩略图 14、广告分表统计 15、附件报错 16、解决后台工作流无法使用的 17、工作流,限制只有管理员和总编可以管理所有工作流 18、增加ftp域名填写提示 19、新增 栏目生成静态与模型设置分开,可独立设置栏目是否生成静态 20、非系统且作为搜索条件字段,增加索引 只针对了添加、修改操作 21、新增:内容页面按照栏目设置是否生成静态,如果模型设置了不生成,那么默认添加的栏目,默认不选择的时候,也是不生成静态,如果选择,那么则按照栏目的设置方式生成。 22、优化后台操作日志表过大的 23、投票卷修改投票主题页面 24、新增 联动菜单功能,支持单独调用 25、新增定时发布功能 26、吧 管理搜索分页 27、吧 管理回答搜索分页 29、安装检测模板目录权限 30、删除多余文件 member/admin/include/fileds 31、BUG: 会员标签调用,当选择性别后,sql报错 32、BUG:内容模型标签多选框 33、删除多余文件:member/include/fields 34、BUG: 会员标签调用为多选框时,sql返回array 35、BUG:后台会员搜索选择扩展会员组时,存在。 36、BUG:解决后台内容管理,预览之后,提交出错! 37、BUG : 投票卷模板名称与模块名称不统一 38、BUG:表单向导模板管理 39、增加:视频获取密钥提示页 40、解决SQL注入的。 41、增加:在线管理员短消息发布,查看、群发 42、增加:短消息后台群发 43、增加栏目访统计 44、增加稿件统计 45、企业黄页商务管理中心添加新莱单后无法启用.勾选后提交无效 46、修正:交易记录详单 下单时间 错误。 47、修正:详单记录缺少备注信息的 48、修正:支付Email信息没有被记录的 49、更新UCenter 删除会员后,在phpcms没有同步删除的BUG 50、会员验证失败后,没有跳转到登陆前页面的BUG 51、优化会员注册失败后 注册信息不会被清空。 52、BUG:支付即时支付时,接口。 53、BUG:网站后台新闻信息,当设置为"草稿"后, 再设置为"发布"和"审核"无效 54、BUG:在移动文章后,如果带转向链接的文章,移动到指定栏目后,转向链接变成文章链接了 55、修正:后台 吧->管理标签 表单名称错误 56、增加安全考虑,只有创始人才能删除日志 57、BUG:采集字段规则包含,时,再次编辑无法显示全部代码。 58、BUG:内容模型栏目绑定二级域名后,rss 链接地址错误 59、安全:吧开启编辑器模式时,不允许填写javascrip、 iframe 代码 60、安全:tag.php javascrip 过虑 61、安全:企业黄页SQL注入 62、优化:全局安全优化

28,408

社区成员

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

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