亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

JQ完成省市聯動的案例(返回Json)

標簽:
Java

0, JSON语法

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

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

[

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

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

1,设计页面

</head>
<body>
省份:
<select id="province">
    <option value="">-请选择-</option>
    <option value="1">广东省</option>
    <option value="2">湖南省</option>
    <option value="3">湖北省</option>
    <option value="4">河南省</option>
</select>
城市:
<select id="city">
    <option value="">-请选择-</option>
</select>
</body>

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<City> 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("<option value=''>-请选择-</option>");
            $(data).each(function(i,n){
                city.append("<option value='"+n.id+"'>"+n.name+"</option>");
            });
        },"json");
    });
});
點擊查看更多內容
2人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消