asp下二级下拉框联动问题???指针不向下移动??

homel 2008-07-05 09:15:48
各位:请大家给看看:
数据表结构:
onhand_id subinventory_code inventory_item_id
1 4 787
2 4 789
3 5 890
4 5 785

现在想实现的功能是:当我选择第一个下拉菜单中的值4时:第二个下拉菜单中显示:787和789两项
但是现在做的指针根本不往下移动,请高手给解决一下,谢谢(急啊....)
以下是代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp" -->
<% dim count
set rs=server.CreateObject("adodb.recordset")
rs.open"select * from mtl_onhand_quantities ",conn,1,1
%>

<SCRIPT language="javascript">
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%=rs("subinventory_code")%>","<%=rs("inventory_item_id")%>","<%=rs("onhand_id")%>");
<%
count = count + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount=<%=count%>;
function changelocation(locationid)
{
document.myform.id.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
if (subcat[i][1] == locationid)
document.myform.id.options[document.myform.id.length] = new Option(subcat[i][0], subcat[i][2]);
}
</SCRIPT>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<%
set rs=server.CreateObject("adodb.recordset")
'rs.open"select eq_id,eq_number,eq_name from equipment_detail where company_code='"&session("company")&"'and workstation_code in (select user_station_code from tbl_user_level where user_id='"&session("user_id")&"'and status=1)",conn,1,1
rs.open"select distinct subinventory_code from mtl_onhand_quantities ",conn,1,1
if not rs.eof then
%>

<select name="system_id" class="txtBoxStyle2" id="system" onChange="changelocation(document.myform.system_id.options[document.myform.system_id.selectedIndex].value)">
<option selected value="<%=rs("subinventory_code")%>"><%=rs("subinventory_code")%></option>
<% dim seleq
seleq=rs("subinventory_code")
rs.movenext
do while not rs.eof
%>
<option value="<%=rs("subinventory_code")%>"><%=rs("subinventory_code")%></option>
<%
rs.movenext
loop
rs.close
set rs=nothing
%>
</select>
<select name="id" id="id">
<%
set rs2=server.CreateObject("adodb.recordset")
sql="select * from mtl_onhand_quantities where subinventory_code="&seleq
response.Write sql
rs2.open sql,conn,1,3
if not(rs2.eof and rs2.bof) then
%>
<option selected value="<%=trim(rs2("onhand_id"))%>"><%=trim(rs2("inventory_item_id"))%></option>
<%rs2.movenext
do while not rs2.eof%>
<option value="<%=trim(rs2("onhand_id"))%>"><%=trim(rs2("inventory_item_id"))%></option>
<% rs2.movenext
loop
end if
rs2.close
set rs2=nothing
%>
</select> <%end if%>
</body>
</html>
...全文
108 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
lengcj 2011-03-17
  • 打赏
  • 举报
回复
我也是这问题啊
  • 打赏
  • 举报
回复
给你一个js版二级下拉菜单,你可以参考一下
http://blog.csdn.net/sandyxxx/archive/2008/04/28/2337281.aspx
jhwcd 2008-07-05
  • 打赏
  • 举报
回复
把<option selected value="<%=trim(rs2("onhand_id"))%>"><%=trim(rs2("inventory_item_id"))%></option>
<%rs2.movenext
do while not rs2.eof%>
<option value="<%=trim(rs2("onhand_id"))%>"><%=trim(rs2("inventory_item_id"))%></option>
<% rs2.movenext
loop
改成下面这样试试。
<%
do while not rs2.eof
%>
<option value="<%=trim(rs2("onhand_id"))%>"><%=trim(rs2("inventory_item_id"))%></option>
<% rs2.movenext
loop
%>
homel 2008-07-05
  • 打赏
  • 举报
回复
我觉得我的算法没有问题啊
只不过是实现起来有问题啊
也有可能是自己现在的思路有问题,
所以我才来问大家,集思广益的...
不过还是很感谢你...
  • 打赏
  • 举报
回复
自己整理下思路和程序结构
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 homel 的回复:]
按你说的连参数都没有传递,怎么可能呢?
第二个下拉菜单中根本就没有值啊?
我测试了,只显示“请指定小类"..
[/Quote]

你的程序有问题
homel 2008-07-05
  • 打赏
  • 举报
回复
回复楼上的,没有.3ks
ymhdlh 2008-07-05
  • 打赏
  • 举报
回复
我觉得你是不是把2个下拉列表都勾上刷新了?第2个下拉列表不要刷新就能选择了。不知道你要解决的是不是这个问题。因为现在这台电脑上没安装软件,无法调试。
homel 2008-07-05
  • 打赏
  • 举报
回复
按你说的连参数都没有传递,怎么可能呢?
第二个下拉菜单中根本就没有值啊?
我测试了,只显示“请指定小类"..
  • 打赏
  • 举报
回复
你自己的程序里面乱的肯,你先把思路和程序重新整理下吧
  • 打赏
  • 举报
回复
<select name="id" id="id">
<%
set rs2=server.CreateObject("adodb.recordset")
sql="select * from mtl_onhand_quantities where subinventory_code="&seleq
response.Write sql
rs2.open sql,conn,1,3
if not(rs2.eof and rs2.bof) then
%>
<option selected value="<%=trim(rs2("onhand_id"))%>"><%=trim(rs2("inventory_item_id"))%></option>
<%rs2.movenext
do while not rs2.eof%>
<option value="<%=trim(rs2("onhand_id"))%>"><%=trim(rs2("inventory_item_id"))%></option>
<% rs2.movenext
loop
end if
rs2.close
set rs2=nothing
%>
</select> <%end if%>

你这部分做纯属多余

只需要
<select name="id" id="id">
<option selected value="">请指定小类</option>
</select>
这样简单的就可以了
homel 2008-07-05
  • 打赏
  • 举报
回复
回复楼上的之前我也是这样写的
但是还是如我上面提示的错误,请帮我看看
真的没有什么思路了..
  • 打赏
  • 举报
回复
你这个代码本身就有问题

subcat[<%=count%>] = new Array("<%=rs("inventory_item_id")%>","<%=rs("subinventory_code")%>","<%=rs("onhand_id")%>");
你改成这样应该是没有问题了
xiaominjun 2008-07-05
  • 打赏
  • 举报
回复
<form method="post" action="AddProduct.asp" name="doublecombo" onSubmit="return CheckForm()">
<script>
function ToClass(ID,ClsID,Next)
{
Next.length =0;
if(ID==2)
str=document.doublecombo.hid2.value;
else if(ID==3)
str=document.doublecombo.hid3.value;
else if(ID==4)
str=document.doublecombo.hid4.value;

Next.options[Next.length] = new Option("-请选择-",0);

subcat=str.split("|");

for(i=0;i<subcat.length-1;i++)
{
pp=subcat[i].split("/")
if(parseInt(pp[0],10)==parseInt(ClsID,10))
{
tt=pp[1].split(",")
Next.options[Next.length] = new Option(tt[1],tt[0]);
}
}
}
</script>
<span class="banma2">
<select size="1" name="AcceptNetbarKey1" class="face" style="width:145" onchange="ToClass(2,document.doublecombo.AcceptNetbarKey1.options[document.doublecombo.AcceptNetbarKey1.selectedIndex].value,document.doublecombo.AcceptMemberKey1)">
<option value="36" selected="selected">-请选择-</option>
<option value="28">半导体照明光源</option>
<option value="29">半导体照明灯具</option>
<option value="30">城市亮化与泛光照明系统</option>
<option value="31">显示屏系统</option>
</select>
</span><span class="banma2">
<select name="AcceptMemberKey1" style="width:145" class="face" onclick="ToClass(3,document.doublecombo.AcceptMemberKey1.options[document.doublecombo.AcceptMemberKey1.selectedIndex].value,document.doublecombo.ff1)">
<option value="0">-请选择-</option>
</select>
</span><span class="banma2">
<select id="ff" name="ff1" style="width:145" class="face" onchange="ToClass(4,document.doublecombo.ff1.options[document.doublecombo.ff1.selectedIndex].value,document.doublecombo.ff2)">
<option value="0">-请选择-</option>
</select>

<input type="hidden" name="hid2" value="28/96,大功率LED灯条|28/95,大功率LED射灯|28/94,大功率LED灯板|31/40,室内|30/38,智能遥控泛光装饰照明系统与亮化工程|29/35,LED台灯|28/32,大功率LED|31/41,室外|30/39,彩显幕墙系统与工程|29/36,LED日光灯|28/33,LED背光模组|29/37,LED路灯|28/34,管状灯|">
<input type="hidden" name="hid3" value="34/98,W系列管状灯|35/58,至尊系列|35/59,博士系列|35/60,Q宝系列|">
</form>



接分。 谢谢
homel 2008-07-05
  • 打赏
  • 举报
回复
回复上面的?
我选择的4指得是subinventory_code
subinventory_code 为4的值对应的inventory_item_id 确实为787和789啊?没有什么问题啊
我是调用的同一种table啊?
这样的sql
select * form table where subinventory_code=4
应该没有什么问题啊???
  • 打赏
  • 举报
回复
看你的数据库表结构和你的程序,你选择4的时候,怎么会出现787和789呢?
  • 打赏
  • 举报
回复
还有你使用什么关联?
  • 打赏
  • 举报
回复
你调用的是一个表中的?
homel 2008-07-05
  • 打赏
  • 举报
回复
回复ls的
就是选择的时候,第一个列表框中的值:不管选择的是哪一个subinventory_code,第二个下拉列表中只显示第一个subinvnetory_code中的值啊!
  • 打赏
  • 举报
回复
不往下走是什么意思?

28,390

社区成员

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

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