ITPub博客

首页 > IT职业 > IT图书 > JQ完成省市联动的案例(返回Json)

JQ完成省市联动的案例(返回Json)

IT图书 作者:shinez 时间:2021-09-09 08:57:46 0 删除 编辑

0, JSON语法

举个例子:使用JSON表示省市的结构:

{“id”:1,”name”:”广州”,”pid”:1} 代表了一个城市的信息

[

{“id”:1,”name”:”广州”,”pid”:1},

{“id”:2,”name”:”深圳”,”pid”:1}

1,设计页面



省份:

城市:

2,编写Servlet

public class CityServlet2 extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            // 接收参数:
            int pid = Integer.parseInt(request.getParameter("pid"));
            // 调用业务层:
            CityService cityService = new CityService();
            List list = cityService.findByPid(pid);
            // 将list集合转成JSON:
            // jsonlib , fastjson.
            /**
             * jsonlib的API中提供了两个类
             * JsonArray    :用于将数组或list集合转成json
             * JsonObject   :用于将Object或map集合转成json
             */
            // 去掉某些无关的属性:
            JsonConfig jsonConfig = new JsonConfig();
            jsonConfig.setExcludes(new String[]{"pid"});

            JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig);
            System.out.println(jsonArray.toString());

            // 响应数据到页面:
            response.setContentType("text/html;charset=UTF-8");
            response.getWriter().println(jsonArray.toString());
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}                                                   

3, 编写JS

$(function(){
    // 为第一个下拉列表添加事件:
    $("#province").change(function(){
        // 获得选中省份的值:
        var val = $(this).val();
        // 异步发送请求:
        $.post("/day16/CityServlet2",{"pid":val},function(data){
            // js直接将json识别为数组格式。
            // 获得市的下拉列表:
            var city = $("#city");
            city.html("");
            $(data).each(function(i,n){
                city.append("");
            });
        },"json");
    });
});

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3127/viewspace-2807481/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-30

  • 博文量
    0
  • 访问量
    932