• JAVA EE 中之AJAX 无刷新地区下拉列表三级联动


    JSP页面

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Ajax无刷新三级联动</title>
    
    <%
    MemberDal md = new MemberDal(); //实例化封装的数据库操作类
    
    ArrayList<Member> al1 = md.getMember(0); //获取第一级地区数据
    
    %>
    
    <script type="application/javascript" src="jquery/jquery-1.11.3.js"></script>
    
    <script type="text/javascript">
    
    function yijChangeJson()
    {    //Jquery Ajax  get方法异步请求调用数据         URL(第一级地区ID参数) + 回调函数
        $.get("jsonMembers?parentid=" + $("#yij").val() + "&nocache=" + new Date().getTime(),
            function(data,status){
            
            //解析JSON  获取数组
            var array = eval(data);
            
            var erj = document.getElementById("erj");
            //清空下拉列表
            erj.options.length = 1;
            //遍历数据
            for(var i = 0; i < array.length; i++)
                {
                //更改option标签内容和value
                erj.options.add(new Option(array[i].name, array[i].id));            
                }
            //清空第三级下拉列表
            var sanj = document.getElementById("sanj");
            sanj.options.length = 1;
        })    
    }
    
    
    function erjChangeJson()
    {   //Jquery Ajax  get方法异步请求调用数据          URL(第二级地区ID参数) + 回调函数
        $.get("jsonMembers?parentid=" + $("#erj").val() + "&nocache=" + new Date().getTime(),
            function(data,status){
            
            //解析JSON  获取数组
            var array = eval(data);
            
            var sanj = document.getElementById("sanj");
            //清空下拉列表
            sanj.options.length = 1;
            //遍历数据
            for(var i = 0; i < array.length; i++)
                {
                //更改option标签内容和value
                sanj.options.add(new Option(array[i].name, array[i].id));            
                }
        })    
    }
    
    </script>
    
    
    </head>
    <body>
    
    <form>
    一级地区:
    <select id="yij" name="yij" onchange="yijChangeJson()">
    <option value="0">未选择</option>
    <% 
    if(al1 != null)
    {
    for(Member m : al1)  //遍历获取第一级地区数据集合并在option标签内输出
    {
        out.append("<option value='"+m.getId()+"'>"+m.getName()+"</option>");
    }
    }
    %>
    </select>
    二级地区:
    <select id="erj" name="erj"  onchange="erjChangeJson()">
    
    <option value="0">未选择</option>
    </select>
    
    三级地区:
    <select id="sanj" name="sanj" >
    
    <option value="0" selected>未选择</option>
    
    </select>
    
    </body>
    </html>

    servlet

    package com.hanqi;
    
    import java.io.IOException;
    import java.util.ArrayList;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.hanqi.dao.Member;
    import com.hanqi.dao.MemberDal;
    
    import com.alibaba.fastjson.*;//引入JSON的jar包
    
    @WebServlet("/jsonMembers")
    public class jsonMembers extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        
        public jsonMembers() {
            super();
           
        }
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            request.setCharacterEncoding("UTF-8");    
            response.setContentType("text/html; charset=UTF-8");
            
    
            String parentid = request.getParameter("parentid");//接收ajax发送参数
            
            MemberDal md = new MemberDal();  //实例化封装的数据库操作类
            
            if(parentid != null && parentid.trim().length() > 0)
            {
                int i = Integer.parseInt(parentid);//数据类型转换
                
                String s = "";
                
                try
                {
                    ArrayList<Member> al = md.getMember(i); //根据参数查询数据获取集合
                    
                    if(al != null)
                    {
                        s = JSON.toJSONString(al); //将集合以字符串形式存入JSON
                    }
                } 
                catch (Exception e) 
                {
                    e.printStackTrace();
                }
                response.getWriter().append(s);//把JSON数据发送给JSP
            }
        } 
        
    
        
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
  • 相关阅读:
    解题报告 百进制数
    解题报告 Loongint 的夜晚
    解题报告 树形图计数
    解题报告 一元三次方程求解
    解题报告 Loongint 的旅行安排
    解题报告 数字查找
    用C++编写简单绘图语言的词法分析器——程序清单
    C++ 连接 mysql 的一个例子(Visual Studio 2005)
    fedora 8 下JDK 6.0 配置
    IBM DB2 V9 常用命令
  • 原文地址:https://www.cnblogs.com/OldZhao/p/5067067.html
Copyright © 2020-2023  润新知