标题:版主救命:关于二级联动下拉菜单问题。
只看楼主
jjgxbd
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-8-24
 问题点数:0 回复次数:2 
版主救命:关于二级联动下拉菜单问题。
版主:
     救命啊.........
    在发表新闻时,如是专题新闻,需要选择专栏名称及分栏名称,而有的专栏可能又无分栏。我做了个二级联动下拉菜单:专栏与分专栏联动,选择专栏时将相应的分当栏找出。判断是否是专题新闻,用个IsColumn字段判断。但问题是:

    1、 如我选择了专题新闻时,我选择了专栏名称,但又不需要选择分专栏名称时,程序会出错;

    2、 如我选择了专题新闻时,忘记选择专栏与分专栏名称,程序也出错。

    如何避免这个问题,是不是将专栏与分专栏名称的默认值设为Null就行,但又怎么设?

    请版主救命!!!!!!!!!!!

   Access数据库:defColunInfo(专栏): ColumnID(专栏ID),Column(专栏名称),IsCurrent

                        defColumndtl(分专栏):SubColumnID(分专栏ID),ColumnID(专栏ID),,SubColumn(分专栏名称),IsCurrent

  asp代码:

   

<!-- #include file="conn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>二级联动菜单</title>

 <script language=JavaScript>
 <%
 dim sql,i,j
 set rs_Column= server.createobject("adodb.recordset")
 sql="select * from defColunInfo order by ColumnID"
 rs_Column.open sql,conn2,1,1
 %>
 
 var selects=[];
 selects['yyy']=new Array(new Option('分栏名称','yyy'));
 <%
 for i=1 to rs_Column.recordcount
 %>
 

 selects['<%=rs_Column("ColumnID")%>']=new Array(
 <%
 set rs_SubColumn= server.createobject("adodb.recordset")
 sql="select * from defColumndtl where ColumnID="&rs_Column("ColumnID")&" order by SubColumnID"
 rs_SubColumn.open sql,conn2,3,2
  if rs_SubColumn.recordcount>0 then
    for j=1 to rs_SubColumn.recordcount
    if j=rs_SubColumn.recordcount then
 %>new Option('<%=trim(rs_SubColumn("SubColumn"))%>','<%=trim(rs_SubColumn("SubColumnID"))%>'));
 <%else%>
 new Option('<%=trim(rs_SubColumn("SubColumn"))%>','<%=trim(rs_SubColumn("SubColumnID"))%>'),
 <%
  end if
  rs_SubColumn.movenext
  next   
 else
 %>
 new Option('','0'));
 <%
 end if
 rs_SubColumn.close
 set rs_SubColumn=nothing
 rs_Column.movenext
next
rs_Column.close
set rs_Column=nothing
%>
function chsel(){
 with (document.form1){
   if(Column_select.value!="yyy") {
  SubColumn_select.options.length=0;
  SubColumn_select.add(selects['yyy'][0]);
  for(var i=0;i<selects[Column_select.value].length;i++){
    SubColumn_select.add(selects[Column_select.value][i]);
   }
  }
 }
 }
</script>
</head>
<body>
<form id="form1" name="form1" method="POST" action="SaveForNotSend.asp?ID=<%=ERs("ID")%>">
<!--//////////////////////////Column_select下拉列表//////////////////////////-->
<select name="Column_select" onChange=chsel()>
<option value="xxx" selected>请选择专栏名称</option>
 <%
  dim tmpid  '定义一个临时变量用来记住省id
  tmpid=0
  set rs_Column=server.CreateObject("ADODB.recordset")
  sql="select * from defColunInfo order by ColumnID  Desc"
  rs_Column.open sql,conn2,3,2
  while not rs_Column.eof
  tmpid=rs_Column("ColumnID")
  %>
 <option value="<%=rs_Column("ColumnID")%>" ><%=trim(rs_Column("Column"))%></option>
 <%
  'response.Write form1.Column_select.value
  rs_Column.movenext
  wend
  rs_Column.close
  set rs_Column=nothing
 %>
 </select>

<!--//////////////////////////SubColumn_select下拉列表//////////////////////////-->
 <select name="SubColumn_select">
 <option value="SubColumnID" selected="selected">-分栏名称-</option>

 </select>

  <p align="center">
    <input type="submit" name="Submit" value="上传" onClick="submitform(forms[0]);"/>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="submit" name="Submit2" value="重写" />
  </p>

  <input type="hidden" name="MM_update" value="form1">
  <input type="hidden" name="MM_recordId" value="<%= ERs("ID")%>">

</FORM>
</body>
</html>
搜索更多相关主题的帖子: 菜单 版主 救命 
2010-08-24 10:38
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:0 
你的问题挺复杂的,还需要提供完整的源码,手头上没有你那种款式的数据库,没办法帮你测试。

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-08-24 16:54
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
如果正常都选择时是正确的。那么,你找出出错处,一般加个判断语句进行处理就行了!

★★★★★为人民服务★★★★★
2010-08-24 18:32



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




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

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