• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
    一个强健 实用的ajax二级联动菜单(有演示和附源程序打包下载)

    前些天在搞后台的时候要用到二级联动的菜单,到网上去找了半天也没找到满意的,不是这错就是那错,在选择的时候有时候不能返回.真是郁闷.
         后来就看到有人用ajax写了无限级分类(牛,呵呵,本人看不懂.).就想到我那个后台不也可以用ajax试试,虽然比用javascript的慢点,但我这个实用.强健..不会出错,也不会选择某个大类后再返回无选择状态小类为空的状态.呵呵.
    文件目录:如图

    主要代码如下:
    index.asp
    复制代码 代码如下:

    %@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    html xmlns="http://www.w3.org/1999/xhtml">
    head>
    meta http-equiv="Content-Type" c />
    title>Ajax的二级联动by啊峰/title>
    script language="javascript" src="js.js">/script>
    /head>
    body>
    h2>a href="http://yeahdown.com/">Ajax的二级联动by啊峰/a>/h2>
    !--#include file="iconn.asp"-->

    Set afeng = Conn.Execute("select bigclassid,bigclassname from bigclass")
    %>
    form id="form1" name="form1" method="post" action="">
      div id="bigclass" style="float:left">
      select name="select" >
         option value="0">选择一级分类/option>
          %If Not afeng.Eof then
            Do While Not afeng.Eof
                bigclassid= afeng("bigclassid")
                bigclassname = afeng("bigclassname")%>
                option value="%=bigclassid%>">%=bigclassname%>/option>
            %afeng.Movenext
            Loop
        End If
        afeng.Close
        Set afeng = Nothing
        Conn.Close
        Set Conn = Nothing%>
      /select>
      /div>
      div id="subclass"  style="float:left">select name="select2">
        option value="0">选择二级分类/option>
      /select>
      /div>
    /form>
    /body>
    /html>

    getsubcategory.asp文件:
    复制代码 代码如下:

    %
    Response.Charset="GB2312" '设置字符集 原默认为utf-8
    bigclassid=safe(request.QueryString("bigclassid")) '非法字符过滤
    If bigclassid>"" Then
            Set Re=New RegExp
            Re.IgnoreCase=true
            Re.Global=false
            Re.Pattern = "^[0-9]{1,3}$"
            If Not Re.Test(bigclassid) Then 
                Response.Write "非法参数"
                Response.End
            End If%>
    !--#include file="iconn.asp"-->
        %On error Resume Next
        set p = conn.execute("select * from smallclass where bigclassid="bigclassid"")
        If Err Then
            Err.Clear
            Response.Write "查询出错"
            Response.End 
        End If
        If Not p.Eof Then
            html = "select name='smallclassid'>"vbnewline
            Do While Not p.Eof
            html = html"option value='"p("smallclassid")"'>"p("smallclassname")"/option>"vbnewline
            p.Movenext
            Loop
            html = html"/select>"
        Else
            html = "select name='smallclassid'>option value='0' selected>暂无小类/option>/select>"
        End If
        p.Close
        Set p = Nothing
        Conn.Close
        Set Conn = Nothing
        Response.write html
        html = ""
    End If
    %>

    iconn.asp文件: 
    复制代码 代码如下:

    %
    Set conn=server.CreateObject("adodb.connection")
    db = "$#yeahdown.com@$$$@@%%.asp"
    C  Server.MapPath(db)
    On Error Resume Next
    conn.open ConnStr
    If Err Then
        Err.Clear
        Response.Write "div id=""error"">连接数据库出错/div>"
        Response.End
    End If

    Function safe(Str)
    If Isnull(Str) Then
         safe = ""
         Exit Function 
    End If
    Str = Replace(Str,Chr(0),"", 1, -1, 1)
    Str = Replace(Str, """", """, 1, -1, 1)
    Str = Replace(Str,"","", 1, -1, 1)
    Str = Replace(Str,">",">", 1, -1, 1) 
    Str = Replace(Str, "script", "script", 1, -1, 0)
    Str = Replace(Str, "SCRIPT", "SCRIPT", 1, -1, 0)
    Str = Replace(Str, "Script", "Script", 1, -1, 0)
    Str = Replace(Str, "script", "Script", 1, -1, 1)
    Str = Replace(Str, "object", "object", 1, -1, 0)
    Str = Replace(Str, "OBJECT", "OBJECT", 1, -1, 0)
    Str = Replace(Str, "Object", "Object", 1, -1, 0)
    Str = Replace(Str, "object", "Object", 1, -1, 1)
    Str = Replace(Str, "applet", "applet", 1, -1, 0)
    Str = Replace(Str, "APPLET", "APPLET", 1, -1, 0)
    Str = Replace(Str, "Applet", "Applet", 1, -1, 0)
    Str = Replace(Str, "applet", "Applet", 1, -1, 1)
    Str = Replace(Str, "[", "[")
    Str = Replace(Str, "]", "]")
    Str = Replace(Str, """", "", 1, -1, 1)
    Str = Replace(Str, "=", "=", 1, -1, 1)
    Str = Replace(Str, "'", "''", 1, -1, 1)
    Str = Replace(Str, "select", "select", 1, -1, 1)
    Str = Replace(Str, "execute", "execute", 1, -1, 1)
    Str = Replace(Str, "exec", "exec", 1, -1, 1)
    Str = Replace(Str, "join", "join", 1, -1, 1)
    Str = Replace(Str, "union", "union", 1, -1, 1)
    Str = Replace(Str, "where", "where", 1, -1, 1)
    Str = Replace(Str, "insert", "insert", 1, -1, 1)
    Str = Replace(Str, "delete", "delete", 1, -1, 1)
    Str = Replace(Str, "update", "update", 1, -1, 1)
    Str = Replace(Str, "like", "like", 1, -1, 1)
    Str = Replace(Str, "drop", "drop", 1, -1, 1)
    Str = Replace(Str, "create", "create", 1, -1, 1)
    Str = Replace(Str, "rename", "rename", 1, -1, 1)
    Str = Replace(Str, "count", "count", 1, -1, 1)
    Str = Replace(Str, "chr", "chr", 1, -1, 1)
    Str = Replace(Str, "mid", "mid", 1, -1, 1)
    Str = Replace(Str, "truncate", "truncate", 1, -1, 1)
    Str = Replace(Str, "nchar", "nchar", 1, -1, 1)
    Str = Replace(Str, "char", "char", 1, -1, 1)
    Str = Replace(Str, "alter", "alter", 1, -1, 1)
    Str = Replace(Str, "cast", "cast", 1, -1, 1)
    Str = Replace(Str, "exists", "exists", 1, -1, 1)
    Str = Replace(Str,Chr(13),"br>", 1, -1, 1)
    safe = Replace(Str,"'","''", 1, -1, 1)
    End Function
    %>

    最后一个js.js 
    复制代码 代码如下:

    function createxmlhttp()
    {
        xmlhttpobj = false;
        try{//创建对象,一个一个的试,哎,要是能统一标准都好。。
            xmlhttpobj = new XMLHttpRequest;
        }catch(e){
            try{
                xmlhttpobj=new ActiveXObject("MSXML2.XMLHTTP");
            }catch(e2){
                try{
                    xmlhttpobj=new ActiveXObject("Microsoft.XMLHTTP");
                }catch(e3){
                    xmlhttpobj = false;
                }
            }
        }
        return xmlhttpobj; 
    }
    function getsubcategory(bigclassid){
        if(bigclassid==0){
            document.getElementById("subclass").innerHTML="select name='smallclassid'>option value='0' selected>选择二级分类/option>/select>";
            return;
        };
        var xmlhttpobj = createxmlhttp();
        if(xmlhttpobj){//如果创建对象xmlhttpobj成功
            xmlhttpobj.open('get',"getsubcategory.asp?bigclassid="+bigclassid+"number="+Math.random(),true);//get方法 加个随机数。
            xmlhttpobj.send(null);
            xmlhttpobj.onreadystatechange=function(){//客户端监控函数
                if(xmlhttpobj.readystate==4){//服务器处理请求完成
                    if(xmlhttpobj.status==200){
                        //alert('ok');
                        var html = xmlhttpobj.responseText;//获得返回值
                        document.getElementById("subclass").innerHTML=html;
                    }else{
                        document.getElementById("subclass").innerHTML="对不起,您请求的页面有问题...";
                    }
                }else{
                    document.getElementById("subclass").innerHTML="加载中,请梢候...";//服务器处理中
                }
            }    
        }
    }

    打包文件下载
    您可能感兴趣的文章:
    • PHP+ajax实现二级联动菜单功能示例
    • ajax三级联动下拉菜单效果
    • AJAX省市区三级联动下拉菜单(java版)
    • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
    • ajax读取数据库内容实现二级联动下拉选择菜单示例
    • Ajax二级联动菜单实现原理及代码
    • 基于asp+ajax和数据库驱动的二级联动菜单
    • 落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
    • 琥珀无限级分类联动菜单AJAX版
    • Ajax实现二级联动菜单
    上一篇:随机调用n条数据的方法分析
    下一篇:asp 读取 utf-8格式文档并生成utf-8格式文档的乱码问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载) 一个,强健,实,用的,asp+ajax,