还是关联菜单的问题?高手救命啊

duguyila 2003-05-04 03:20:15
有两个表
Company
C_name 公司名称
C_symb 公司代号 char(1) 0

Manger
M_ name 领导姓名
M_symb 领导所在公司的代号 char(1) //和C_ symb对应

现在需要满足
选中公司代号后,领导姓名下拉发生变化

我采用iframe传递数据
main.asp:
<select name="dw" id="dw" onChange="go(this)">">
<option selected>==所在单位==</option>
<% do while not rs.eof %>
<option value="<%= trim(rs("C_symb"))%>"> <% =trim(rs("C_name")) %> </option>
<%
rs.movenext
loop
%>
</select>
<select name="ld" id="ld" class=select disabled>
<option value="">==领导姓名== </option>
</select>
<iframe src="2.asp" width=0 height=0 name=hidfrm></iframe>

<script language=javascript>
function go(s){
document.all.ld.disabled=(s.selectedIndex==0);
if(s.selectedIndex==0){
document.getElementById('ld').options.length=0;
document.getElementById('ld').add(new Option("==领导姓名== "));
return;
}
hidfrm.location.href='2.asp?dw_symb='+s.value;
}
</script>

2.asp
<% if request.querystring("dw_symb")<>"" then
....
if not rs.eof then
%>
<script>
var s=parent.document.getElementById("ld")
s.options.length=0
<% do while not rs.eof %> //?????????????????????????
s.options.add(new Option("<%=rs("M_name")%>","<%=rs("M_name")%>"))
<%
rs.movenext
loop
%>
</script>
<%
end if
end if
%>

上面的代码在IE6.0下运行正常,可是一到IE5.0,就在???处报错
字符1无效,这个问题我弄了一上午和中午都没搞定,真是急死了呀,
高手救命呀!


...全文
31 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fason 2003-05-05
  • 打赏
  • 举报
回复
将name去掉试试
duguyila 2003-05-05
  • 打赏
  • 举报
回复
是的呀
我是在第二个select中先选别的值,然后选“请选择”,出现的错误
fason 2003-05-05
  • 打赏
  • 举报
回复
不会吧,我用是没问题的,看你的第二个select的ID是否是s2
duguyila 2003-05-05
  • 打赏
  • 举报
回复
非常感谢阿信。
还有个问题
当执行到
document.getElementById('s2').options.length=0;
document.getElementById('s2').add(new Option("请选择"));

报告字符1缺少对象,不知道是怎么回事?
fason 2003-05-04
  • 打赏
  • 举报
回复
可以啊
s2.value就是选中的值
改成<select id='s2' name='s2'>"+arr.join()+"</select>";
就可以request.form("s2")取值

duguyila 2003-05-04
  • 打赏
  • 举报
回复
对于arr[i++]="<option value='<%=rs("sub")%>'><%=rs("sub")%></option>";

如何获得第二个下拉菜单的选中的值<%=rs("sub")%>?
fason 2003-05-04
  • 打赏
  • 举报
回复
试试我的增强版,速度更快
1.asp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>两级连动数据库版</title>
<!--
数据库名 test.mdb
表结构(dbselect):id(自动编号) parent(text) sub(text)
-->
</head>
<script>
function go(s){
if(s.selectedIndex==0){
document.getElementById('s2').options.length=0;
document.getElementById('s2').add(new Option("请选择"));
return;
}
load.style.display=''
hidfrm.location.href='2.asp?parent='+s.value
}
</script>
<body>
<% dim conn,rs
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("test.mdb") & ";Persist Security Info=False"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select parent from dbselect group by parent",conn,1,3
%>
<select id="s1" onchange="go(this)">
<option>请选择</option>
<%do while not rs.eof%>
<option value="<%=rs("parent")%>"><%=rs("parent")%></option>
<%rs.movenext
loop
set rs=nothing
%>
</select>
<span id=s2_container><select id="s2">
<option>请选择</option>
</select></span><span id=load style="font-size:12px;display:none">Loading</span>
<iframe src="2.asp" width=0 height=0 name=hidfrm></iframe>
</body>
</html>


2.asp

<% if request.querystring("parent")<>"" then
dim conn,rs
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("test.mdb") & ";Persist Security Info=False"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select sub from dbselect where parent='"&request.querystring("parent")&"'",conn,1,3
if not rs.eof then
%>
<script>
var arr=new Array()
var i=0
var s2Container=parent.document.getElementById("s2_container")
s2Container.innerHTML="";
<%do while not rs.eof%>
arr[i++]="<option value='<%=rs("sub")%>'><%=rs("sub")%></option>";
<%
rs.movenext
loop
%>
s2Container.innerHTML="<select id='s2'>"+arr.join()+"</select>";
parent.load.style.display='none'
</script>
<%
end if
end if
%>
duguyila 2003-05-04
  • 打赏
  • 举报
回复
错误描述:
s.options.add(oOption);
该行:字符2 参数无效
duguyila 2003-05-04
  • 打赏
  • 举报
回复
to : wsj(骆驼)(从麻木中苏醒)
换了你的代码(oSelect改为s),效果还是一样的,在IE6.0下一切正常,可是到了IE5.02下,还是抱错,
这条语句s.options.add(oOption);参数2无效
wsj 2003-05-04
  • 打赏
  • 举报
回复
try:


s.options.add(new Option("<%=rs("M_name")%>","<%=rs("M_name")%>"))

==>

var oOption = document.createElement("OPTION");
oSelect.options.add(oOption);
oOption.innerText = "<%=rs("M_name")%>";
oOption.Value = "<%=rs("M_name")%>";
duguyila 2003-05-04
  • 打赏
  • 举报
回复
忘贴了 onchange=go(this)
功能在IE6下运行正常,在IE5下不能运行,问题可能是出在浏览器兼容性的问题上呀
可是我不知道为什么????处不对呀?
IE5.0下,第二个下拉框是可选,但是option 全为空
yangyanli 2003-05-04
  • 打赏
  • 举报
回复
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>
 共有935个手机论坛,请选择:<script LANGUAGE='JavaScript'>
var selects=[];
selects['1']=new Array(
new Option('请选择型号',''),
new Option('166C','110'),
new Option('308C','114'),
new Option('V860','12911'),
new Option('V998+','104'),
new Option('V998++','126'),
new Option('V998C','10561'));
selects['2']=new Array(
new Option('请选择型号',''),
new Option('1610','212'),
new Option('2100','8782'),
new Option('3810','213'),
new Option('5100','8958'),
new Option('9110','205'),
new Option('9210c','4286'),
new Option('CP2.0','4258'));
selects['3']=new Array(
new Option('请选择型号',''),
new Option('A1018sc','306'),
new Option('A2618sc','315'),
new Option('T68','4334'),
new Option('TH688','317'));
selects['4']=new Array(
new Option('请选择型号',''),
new Option('1118','4225'),
new Option('SL55','9668'),
new Option('SX1','12517'),
new Option('U10','9482'));
selects['5']=new Array(
new Option('请选择型号',''),
new Option('A300(A388)','4381'),
new Option('SCH-410C','4376'),
new Option('SCH-611','805'),
new Option('SGH-T408','8906'),
new Option('SGH-T508','9784'),
new Option('SGH-T708','9785'));
selects['6']=new Array(
new Option('请选择型号',''),
new Option('120','4500'),
new Option('128','503'),
new Option('9660','4332'),
new Option('969','4272'),
new Option('969+','4443'),
new Option('988','508'),
new Option('989','509'),
new Option('9@9','4281'),
new Option('9@9+','4545'),
new Option('9@9++','13047'));
selects['7']=new Array(
new Option('请选择型号',''),
new Option('515','4515'),
new Option('988','601'),
new Option('N8000','8295'),
new Option('SB1000','602'));
selects['8']=new Array(
new Option('请选择型号',''),
new Option('GD93','708'),
new Option('X70','13266'));
selects['9']=new Array(
new Option('请选择型号',''),
new Option('EASY','902'),
selects['230']=new Array(
new Option('请选择型号',''),
new Option('PT1689','13278'),
new Option('PT212+','13279'));
selects['232']=new Array(
new Option('请选择型号',''),
new Option('T06','13327'),
new Option('T06+','13328'));
function jmp(lk){
with (document.all){
if(proid.options[proid.selectedIndex].value) {
var URL = proid.options[proid.selectedIndex].value;
}else {
mark.focus();
alert('请选择品牌和机型');
return false;
}
}
window.open(lk + URL);
}
function chsel(){
with (document.all){
if(mark.value) {
proid.options.length=0;
for(var i=0;i<selects[mark.value].length;i++){
proid.add(selects[mark.value][i]);
}
}
}
}
</script>
<select name=mark onchange='chsel();'>
<option value=''>请选择品牌</option> <option value='1'>摩托罗拉</option><option value='2'>诺基亚</option><option value='3'>爱立信</option><option value='4'>西门子</option><option value='6'>飞利浦</option><option value='9'>阿尔卡特</option><option value='23'>索尼爱立信</option><option value='5'>三星</option><option value='7'>NEC</option><option value='8'>松下</option><option value='10'>索尼</option><option value='11'>三菱</option><option value='17'>现代</option><option value='18'>三洋</option><option value='19'>京瓷</option><option value='20'>LG</option><option value='24'>秀特尔</option><option value='200'>科健</option><option value='201'>东信</option><option value='202'>厦华</option><option value='203'>TCL</option><option value='204'>熊猫</option><option value='205'>中兴</option><option value='206'>康佳</option><option value='207'>波导</option><option value='208'>南方高科</option><option value='209'>海尔</option><option value='210'>首信</option><option value='213'>厦新</option><option value='214'>CECT</option><option value='215'>海信</option><option value='216'>大唐</option><option value='217'>普天东芝</option><option value='218'>托普</option><option value='219'>迪比特</option><option value='220'>大显</option><option value='221'>浪潮</option><option value='222'>联想</option><option value='223'>中桥</option><option value='224'>多普达</option><option value='225'>万利达</option><option value='226'>UT斯达康</option><option value='227'>乐华</option><option value='228'>桑达</option><option value='229'>金立</option><option value='230'>普天</option><option value='232'>中讯天创</option></select><select name=proid>
<option value=''>请选择型号</option>
</select> </font> <img src="/images/go4.gif" onclick="jmp('/forum/phone/main.php?BoardID=');" align="absmiddle" style="cursor:hand;">
<td> </td>
</tr>
</table>
</td>
</tr>
</table>
fason 2003-05-04
  • 打赏
  • 举报
回复
为什么<select name="ld" id="ld" class=select disabled>?
不可用了

28,391

社区成员

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

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