Ajax二级(多级)联动实现原理分析

二级联动效果

Web开发中经常会遇到一些二级联动甚至多级联动,一二级菜单,省市县,公司团队部门等等

实现思路

一级菜单

就是个多option 的select下拉框,option可以来自页面自定义或则数据库

二级菜单

当一级菜单选中后,去查询数据库,查询到对应的二级菜单的内容,使用apend()添加到二级菜单的位置,一二级菜单就实现了联动,下面以部门和部门人员的联动为例介绍下

实际实现

onchange="showDept(this.value)"

一级菜单选择改变触发请求

        function showDept(obj)  
        {  
            var dept = obj;           
            $.ajax({  
                type: "post",    
                url: "erji.jsp",    
                data: "dept="+dept,  
                async: false,  
                success: function(data){ 
                    $("#xingming option").remove()
                    var result=data.split("#");
                    for(var i=0;i<result.length;i++){
                        $("#xingming").append(result[i]);  
                    }
                }     
            });    

前端请求到后端,后端请求数据库二级菜单的内容,并返回给页面显示

        String te = request.getParameter("dept");
        String s = "select id,realname from user where dept = '" + te + "'";
        Statement stmt = db.getConnection().createStatement();
        rs = stmt.executeQuery(s);
        String temp = "<option>请选择</option>#";
        while (rs.next()) {
            temp = temp + "<option value=" + rs.getString("id") + ">" + rs.getString("realname") + "</option>#";
        }
        out.println(temp);

思考

当一级菜单选中之后又不选中,二级菜单的处理规则是怎么样的?
选择之后,点击查询后页面如何记住查询条件的呢?

当一级菜单选中之后有可能还是会选择二级菜单,这时候一级菜单不选中,还是需要请求后端重置二级菜单实现一二级联动
将选中的一二级菜单值传到页面设置选中即可(可使用JS)

多级联动同二级联动

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一去经年骚动的青春 邀月共赴千古的迷离 灯光闪烁照耀着前行 那些秘密转眼就瘦在秋天里 独自在泥土里扎根 任其明媚、...
    行走如花阅读 156评论 0 1
  • 今天是个阴雨天,工作忙,没时间写东西,加上这样一个不爽的天气,心里觉得有些压抑。记得8年前的今天,汶川发生了地...
    思考的蓝阅读 402评论 0 0

友情链接更多精彩内容