• 地区三级联动


    情况简介:老大给了我一个模块,做新增的时候,有个地址地区,要求就是第一个框选了浙江省,第二个框自动补充出来浙江省的地市,默认填充是杭州市,选择了市以后,区的下拉框可以使用,并且是市对应的下级,比如说前边的是杭州市,区就可以选择滨江区 余杭区等等

    吐槽一下:其实这玩意儿咱经常见,真的拿来做了,却有点虚,当时还真是没有啥想法,后来才把做出来,鹅鹅鹅鹅鹅鹅,废话也不少了,直接代码:

    代码:

    //后台java代码 去新增页面
    map.addAttribute("listProvince", listProvince); return VIEW_PATH + "/add";

    //根据省查询市
    @RequestMapping("/findCity")
    @ResponseBody
    public Object findCity(String provinceName,String provinceCode){
    List<SysCity> list = new ArrayList<>();
    try {
    list= sysCityService.queryCityByProvinceCode(provinceCode);
    } catch (Exception e){
    e.printStackTrace();
    }
    return list;//该list就是下边js中第s
    }

    //根据市查询县
    @RequestMapping("/findCountry")
    @ResponseBody
    public Object findCountry(String cityName,String cityCode){
    List<SysCountry> list = new ArrayList<>();
    try {
    list= sysCountryService.queryCountryByCityCode(cityCode);
    } catch (Exception e){
    e.printStackTrace();
    }
    return list;//该list就是下边js的ss
    }
     

    查出来很多的省   并且每个元素都有省名称和编码 0、1是北京和天津 直辖市

    查出来的地市 每个元素都有省编码 市名称和市编码

    查出来的很多区县

    //html代码 add.html
    <div class="col-md-2"> <select id="province" placeholder="请选择省"> <option th:each="level : ${listProvince}"
               th:value
    ="${level.provinceCode}" th:text="${level.provinceName}" xmlns:th="http://www.w3.org/1999/xhtml">
         </
    option> </select> </div> <div class="col-md-2"> <select id="city"placeholder="请选择市">     //js中拼接 </select> </div> <div class="col-md-2"> <select id="country"placeholder="请选择县">     //js中拼接 </select> </div>
    //js代码 
    $(function(){
    $("#province").on("change",function () { debugger; var provinceText=$("#province").find("option:selected").text(); var provinceVal=$("#province").val();
          //去后台 根据省查找市 var url = rootPath + '/serv/service/findCity'; var s = CommnUtil.ajax(url, { provinceName: provinceText, provinceCode: provinceVal }, "json"); if(!!s && s.length > 0){ $("#city").empty(); var item; $.each(s,function(i,result){
              //给id为city的select拼接object选项和值 $("#city").append($("<option/>").text(result['cityName']).attr("value",result['cityCode'])); }); }else{ $("#city").empty(); } var cityText=$("#city").find("option:selected").text(); var cityVal=$("#city").val(); var urlCountry = rootPath + '/serv/service/findCountry'; var ss = CommnUtil.ajax(urlCountry, { cityName: cityText, cityCode: cityVal }, "json"); if(!!ss && ss.length > 0){ $("#country").empty(); var item; $.each(ss,function(i,result){
              //给id是country的select拼接option选项和值 $("#country").append($("<option/>").text(result['countryName']).attr("value",result['countryCode'])); }); }else{ $("#country").empty(); } });

    });

     总结:三级联动的关键就是在于触发条件查询并且通过ajax的方式异步刷新,条件查询的条件就是前一个select选的项

  • 相关阅读:
    结构体 和 类 的区别
    运算符重载
    迭代器
    HttpClient 同时上传多个文件及参数, 同时利用 Web Api 接收
    JS 上传图片时实现预览
    web api 如何通过接收文件流的方式,接收客户端及前端上传的文件
    同时上传参数及图片到 Web Api
    jsp jstl标签库核心标签
    jsp jstl的使用
    jsp 简单标签开发
  • 原文地址:https://www.cnblogs.com/xuchao0506/p/9773922.html
Copyright © 2020-2023  润新知