蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[ASP,JS]综合难题

一个新闻系统,添加新闻页面中,有一个新闻大类和一个新闻小类,需要选择,选择了一个大类名后,小类列表选择框中自动更新其内内容.
该页,代码中,开头有几段JS代码看的不是太明白,希望高手帮助!
代码如下

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

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


这里是引用JS片段代码:

<%               
        sql = "select * from BigClass_New"
        rs.open sql,conn,1,1
                if rs.eof and rs.bof then
                        response.write "请先添加栏目。"
                else
                %> <select name="BigClassName" onChange="changelocation(document.addNEWS.BigClassName.options[document.addNEWS.BigClassName.selectedIndex].value)" size="1">
                <option selected value="<%=trim(rs("BigClassName"))%>"><%=trim(rs("BigClassName"))%></option>
                <%
                        dim selclass
                    selclass=rs("BigClassName")
                rs.movenext
                    do while not rs.eof
                        %>
                <option value="<%=trim(rs("BigClassName"))%>"><%=trim(rs("BigClassName"))%></option>
                <%
                        rs.movenext
                loop
                end if
        rs.close
                        %>
              </select>
              <select name="SmallClassName">
                <option value="" selected>不指定小类</option>
                <%
                        sql="select * from SmallClass_down where BigClassName='" & selclass & "'"
                        rs.open sql,conn,1,1
                        if not(rs.eof and rs.bof) then
                        %>
                <option value="<%=rs("SmallClassName")%>"><%=rs("SmallClassName")%></option>
                <% rs.movenext
                                do while not rs.eof%>
                <option value="<%=rs("SmallClassName")%>"><%=rs("SmallClassName")%></option>
                <%
                                    rs.movenext
                                loop
                        end if
                rs.close
                        %>

JS代码中的
<script language = "JavaScript">
var onecount;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("SmallClassName"))%>","<%= trim(rs("BigClassName"))%>","<%= trim(rs("SmallClassName"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;
到底有什么用?

前面是循环输出数据库的记录,建立JS数组。
……
count = count + 1
……
onecount=<%=count%>;
是算出记录的数量,并赋值给JS的变量onecount
……




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com