zoukankan      html  css  js  c++  java
  • 省级联动(使用ajax实现)

    在博客园学习了很多实用的东西,现在该慢慢开始自己写写博客文章, 由于本人水平有限,刚走出校园的小菜鸟,另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你

    的脚印,欢迎评论!

    有什么问题,可以互相探讨,希望对各位有所帮助。开始讲东西吧

    一个现实城市下拉框的界面

    html代码:

     <table>
                <tr>
                    <td><h5>城市下拉框</h5></td>
                    <td>
                        <select id="top" style="130px">
                            <option>请选择省市/其他...</option>
                        </select>
                            <select id="center" style=" 130px">
                            <option >请选择城市/其他...</option>
                        </select>
                            <select id="button" style=" 130px">
                            <option>请选择县/区...</option>
                            </select>
                    </td>
                </tr>
    </table>

    js代码:我这里使用的jquery操作Dom和ajax,所以要导入jquery脚本,这里就不提供了,到官方网站下载都有

    <script type="text/javascript">
        $(function() {
            // setCity("top", "0");//页面加载时就现实数据库第一个数据,一定要加上
            setCity("top", "0");
            $("#top").change(function() {
                // 当省级改变的时候,让市级和县级文本清空
                $("#center option").remove();
                $("#button option").remove();
                 //获得省级的id
                var pid=$("#top option:selected").attr("id");
                 //加载该省级的市级数据
                setCity("center", pid);
            });
            $("#center").change(function() {
                 //当市级改变的时候,让县级文本清空
                 $("#button option").remove();
                //获取城市的pid
                var pid=$("#center option:selected").attr("id");
                //加载该省市级的县级数据
                setCity("button",pid );
            });
        });
        //selectid:select标签的id,pid数据库省级县级的pid
        function setCity(selectid, pid) {
            $.ajax({
                url : "/code_20150406(Ajax_XStream_Json)/CtiyServlet?pid="+pid,
                type : "get",
                cache : false,
                success : function(res) {
                    //注意!!!这里必须使用eval(res)函数,否则获取到的json数据无法遍历,无话获取到数据
                    var arr = eval(res);
                    //遍历返回的json数据加载到select标签;
                    $.each(arr, function(key, val) {
                        $("#" + selectid).append(
                                " <option id='" + val.tb_AreaId + "'>"
                                        + val.areaName + "</option>");
                    });
                }
            });
        };
    </script>

    Servlet查询数据库的代码:

    1.返回json数据

    /**
         * 收货地址=>显示城市下拉框
         */
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            response.setContentType("text/html;charset=UTF-8");
            //获取省级或市级的pid
            int i = Integer.valueOf(request.getParameter("pid"));
            //查询数据库数据(我这里是使用是DbUtils获取数据数据,这里可以自身使用的框架来查询数据)
            List<tb_Area> list = dao.getbyAreaid(i);
            //返回json数据:这里返回的一个JavaBBean的List集合,所以要使用JSONArray.fromObject(list)来转换json数据
            response.getWriter().print(JSONArray.fromObject(list));
        }
    2.javabean代码
    public class tb_Area {
        private Integer tb_AreaId;
        private String areaName;
        public Integer getTb_AreaId() {
            return tb_AreaId;
        }
        public void setTb_AreaId(Integer tb_AreaId) {
            this.tb_AreaId = tb_AreaId;
        }
        public String getAreaName() {
            return areaName;
        }
        public tb_Area() {
        }
        @Override
        public String toString() {
            return "tb_Area [tb_AreaId=" + tb_AreaId + ", areaName=" + areaName
                    + ", areaPid=" + areaPid + "]";
        }
        public void setAreaName(String areaName) {
            this.areaName = areaName;
        }
        public Integer getAreaPid() {
            return areaPid;
        }
        public void setAreaPid(Integer areaPid) {
            this.areaPid = areaPid;
        }
        private Integer areaPid;
    }

    数据库

    http://pan.baidu.com/s/1gdw1Osj点击链接下载,这里是txt文件,导入数据库是用的是逗号分隔符,注意数据库子字段的命名即如图

    运行下成功页面

    好了 ,搞定了,要是有什么问题欢迎评论!!!

  • 相关阅读:
    [leedcode 46] Permutations
    [leedcode 45] Jump Game II
    [leedcode 43] Multiply Strings
    [leedcode 42] Trapping Rain Water
    [leedcode 41] First Missing Positive
    [leedcode 40] Combination Sum II
    全排列
    [leedcode 39] Combination Sum
    [leedcode 38] Count and Say
    调和级数求和(分块)
  • 原文地址:https://www.cnblogs.com/lishun1005/p/4058064.html
Copyright © 2011-2022 走看看