jquery ajax(2)-----获取省市县/区三级联动

16 篇文章 0 订阅
5 篇文章 0 订阅

jquery ajax(2)—–获取省市县/区三级联动(1)

1.jsp 页面的jquery ajax:注意要引入jquery.min.js

<script>
  $(function () {
        $("#provSelect").change(function () {
            var selValue=$("select option:selected").val();
            $("#citySelect option:not(:first)").remove();
            $("#distSelect option:not(:first)").remove();
            $.ajax({
                url:"/region/city",
                type:"post",
                dataType:"text",
                data:"provinceId="+selValue,
                success:function (data) {
                    var obj=eval(data);
                    $.each(obj,function (index,item) {
                       // alert(obj[index].id);
   $("#citySelect").append("<option value='"+obj[index].id+"'>"
   +obj[index].regionName+"</option>");
                    })
                } 
            }) 
        })

        $("#citySelect").change(function () {
            var cityId=$("#citySelect option:selected").val();
            alert("cityId=="+cityId);
            $("#distSelect option:not(:first)").remove();
            $.ajax({
               url:"/region/district",
                type:"post",
                dataType:"text",
                data:"cityId="+cityId,
                success:function (data) {
                    var districtJson=eval(data); 
                    $.each(districtJson,function (index,item) {
                        $("#distSelect").append("<option>"+
                        districtJson[index].regionName+"</option>");
                    })
                }
            })
        })
    })
 </script>

2.jsp页面如下:

 <li>
 <select id="provSelect" class="on">
  <option name="prov_9999" value="9999">请选择省份...</option>
  <c:forEach items="${province}" var="pro">
<option name="prov_34" id="pro_id" value="${pro.id}">${pro.regionName}</option>
      </c:forEach>
   </select>
  </li>

<li id="citySelectArea" style="">
  <select id="citySelect">
<option selected="selected" name="city_244" value="244">请选择城市</option>
       <%--<c:forEach items="${city}" var="city">
         <option name="city_245" value="245">${city.regionType}</option>
       </c:forEach>--%>
   </select>
</li>
<li id="distSelectArea">
     <select id="distSelect">
       <option name="dist_9999" value="9999" >请选择地区/县</option> 
     </select>
 </li>

3.springMVC 后台controller 关键加@ResponseBody:

/*获取省份*/
@RequestMapping("/province")
@ResponseBody
public void findProvince(Model model){
    int regionType=1;
    List<Region> regionList=regionService.findByParentId(1);
    model.addAttribute("region",regionList); 
}

/*(2)获取城市*/
@RequestMapping("/city")
@ResponseBody 
public List<Region> findCity(@Param("city")String city, Model model){
    //  int regionType=3;
    System.out.println("controller city=="+city);
    int regionType=Integer.parseInt(city);
    List<Region> regionList=regionService.findByParentId(regionType);
    model.addAttribute("city",regionList); 
    return regionList;
}

/*获取区/县*/
@RequestMapping("/district")
@ResponseBody
public List<Region> findDistrict(@Param("cityId")String cityId, Model model){ 
    int regionType=Integer.parseInt(cityId);
    List<Region> regionList=regionService.findByParentId(regionType); 
    return regionList;
}

4.Region实体类:

@Entity
@Table(name = "region")
public class Region {

@Id
@GeneratedValue
@Column(name = "region_id")
private long id;

@Column(name = "parent_id")
private int parentId;

@Column(name = "region_name")
private String regionName;

@Column(name = "region_type")
private int regionType;
 setter、getter此处省略...
 }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值