用JS实现省市区三级联动 (数据从数据库查出)

6 篇文章 0 订阅
6 篇文章 0 订阅

页面部分代码:

<div class="col-md-6">
                        <div class="form-group">
                            <label class="control-label col-md-3">所在省</label>
                            <div class="col-md-9">
                                <select name="province" required id="province" class="form-control"  οnclick="chooseMarket();">
                                    <option selected value="">选择所在的省份</option>
                                     <c:forEach var="item" items="${provinces}" varStatus="status">
                                        <option value="${item.name}">${item.name}</option>
                                    </c:forEach>
                                </select>
                            </div>
                        </div>
                    </div>

                    <div class="col-md-6">
                        <div class="form-group">
                            <label class="control-label col-md-3">所在市</label>
                            <div class="col-md-9">
                                <select id="market" name="city" required class="form-control"   οnclick="chooseArea();"  >
                                    <option selected value="">请选择所在的市</option>
                                </select>
                            </div>
                        </div>
                    </div>

                    <div class="col-md-6">
                        <div class="form-group">
                            <label class="control-label  col-md-3">所在区/县</label>
                            <div class="col-md-9">
                                    <select name="county" required id="area"  class="form-control">
                                        <option selected value="">请选择所在的区/县</option>
                                    </select>
                            </div>
                        </div>
                    </div>

后台查询数据 前台用js遍历(js追加option,并实现联动效果)

JS部分代码:

   function  chooseMarket() {
        var options=$("#province option:selected");
       if(options.text()!="选择所在的省份"){
          $.post("/city/chooseMarket",{"name":options.val()},function (data) {
              for(var i=0; i<data.length; i++){
                  $("#market").append('<option value="' + data[i].name + '">' + data[i].name + '</option>')
              };
                var name=data[0].name;
                defaultNext(name);
          });

       }

       $("#market").empty();
        $("#area").empty();
    }
    function chooseArea() {
        var options=$("#market option:selected");
        if(options.text()!="请选择所在的市"){
            $.post("/city/chooseArea",{"name":options.val()},function (data) {
                for(var i=0; i<data.length; i++){
                    $("#area").append('<option value="' + data[i].name + '">' + data[i].name + '</option>')
                };
            });
        }
        $("#area").empty();
    }

    function defaultNext(name) {
        $.post("/city/defaultNext",{"name":name},function (data) {
            for(var i=0; i<data.length; i++){
                $("#area").append('<option value="' + data[i].name + '">' + data[i].name + '</option>')
            };
        });
        $("#area").empty();
    }

后台部分代码:

    @RequestMapping(value = "/chooseMarket")
    @ResponseBody
    public List<City>  chooseMarket(HttpServletRequest request,@RequestParam String name){
        ParamMap paramMap=new ParamMap(request);
        paramMap.put("parentId", cityService.selectByName(name).getId());
        return  cityService.chooseNext(paramMap);
    }

    @RequestMapping(value = "/chooseArea")
    @ResponseBody
    public List<City>  chooseArea(HttpServletRequest request,@RequestParam String name){
        ParamMap paramMap=new ParamMap(request);
        paramMap.put("parentId", cityService.selectByName(name).getId());
        return  cityService.chooseNext(paramMap);

    }

    @RequestMapping(value = "/defaultNext")
    @ResponseBody
    public List<City> defaultNext(HttpServletRequest request,@RequestParam String name){
        ParamMap paramMap=new ParamMap(request);
        paramMap.put("parentId", cityService.selectByName(name).getId());
        return  cityService.chooseNext(paramMap);
    }

可以实现的效果,如图






  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值