Spring MVC+JSP能不能实现三级联动

RT,我想要在JSP页面的select标签里实现三级联动,即选择省之后才能看到省里的市并选择辖区同理。大概知道是用JQuery来实现的对吧,但是具体怎么做实在不清楚,求大... RT,我想要在JSP页面的select标签里实现三级联动,即选择省之后才能看到省里的市并选择辖区同理。
大概知道是用JQuery来实现的对吧,但是具体怎么做实在不清楚,求大神解答
展开
 我来答
AcostaZK
推荐于2016-11-28 · Any code,any where
AcostaZK
采纳数:94 获赞数:2352

向TA提问 私信TA
展开全部

当然了,任何前后台都可以实现三级联动,下面是完整的示例代码,供参考:

jsp代码

 <script type="text/javascript">
    $(function() {
        initProvinces();
    });
    /**
     * 获取省列表
     */
    function initProvinces() {
        $('#province').empty();
        $.ajax({
            type : "POST",
            url : basePath + "district/getProvinces.do",
            success : function(data) {
                $.each(data, function(i, it) {
                    $("<option value='" + it.id + "' />"
                        + it.name + "<br>").click(function() {
                            initCities(it.id);
                    }).appendTo($('#province'));
                });
            }
       });
    }
    /**
     * 获取市列表
     */
    function initCities(provinceID) {
        $('#city').empty();
        $.ajax({
            type : "POST",
            url : basePath + "district/getCities.do?province=" + provinceID,
            success : function(data) {
                $.each(data, function(i, it) {
                    $("<option value='" + it.id + "' />"
                        + it.name + "<br>").click(function() {
                            initCounties(it.id);
                    }).appendTo($('#province'));
                });
            }
        });
    }
    /**
     * 获取区县列表
     */
    function initCounties(cityID) {
        $('#county').empty();
        $.ajax({
            type : "POST",
            url : basePath + "district/getCounties.do?city=" + cityID,
            success : function(data) {
                $.each(data, function(i, it) {
                    $("<option value='" + it.id + "' />"
                        + it.name + "<br>")
                    .appendTo($('#province'));
                });
            }
 });
}
//……
</script>
<body>
 选择地区:
 <select id='province'><option>---省---</option></select>
 <select id='city'><option>---市---</option></select>
 <select id='county'><option>---区---</option></select>
</body>

spring MVC 代码:


@Controller
@RequestMapping(value = "/district")
public class districtController {

    @Resource

    private DistrictService districtService;

 /**
  * 获取省列表

  * @return
  * @throws Exception
  */
 @RequestMapping(value = "getProvinces")
 @ResponseBody
 public Object getProvinces() throws Exception {

    return districtService.getProvinces();
 }

 /**
  * 获取市列表

  * @param province

  * @return
  * @throws Exception
  */
 @RequestMapping(value = "getCities")
 @ResponseBody
 public Object getCities(@RequestParam(value = "province") String province) throws Exception {

    return districtService.getCities();
 }

    // 再往下级的获取方式和getCities方法都相同,所以此处略过

}

 

 

 

所有的级联都可以通用这样的方法,修改下参数、名称就行了。

一瞥不够
推荐于2016-05-14 · TA获得超过905个赞
知道小有建树答主
回答量:760
采纳率:71%
帮助的人:203万
展开全部

3个select。 第一个select的option是写到页面的或者jsp标签。然后给这个select的change绑定事件,让这个事件去加载第二个select的option。同样,给第二个select也绑定一个change事件去加载第三个select的数据。

//绑定事件
$("#select1").live(change,function(){
    $.ajax({
        url:aaaa,//提交的地址
        data:{
            select1id:$("#select1").val();
        }
        type:'post',
        datatype:'json',
        success:function(return){
            $("#select2 option").remove();//清空原来的选项
            for(var i=0;i<return.length;i++)
            {
              $("#select2").append("<option val='"+return[i].value+"'> "+return[i].name+"</option>")  
            }
        }
    })
})

大概类似于上面我写的代码。 你改一改就可以用了。 如果有什么疑问欢迎继续追问。

追问
能不能给详细点的注释,还有Controller里的方法能写出来看看嘛
追答

。。你搜多级联动, 前人已经写过很多了。你让我再写一次也没什么意义了。

@requestMapping("/")
@responseBody
public List<City> getCitysByErea(String ereaid,HttpServletRequest request,HttpServletResponse response){
    List<City> citys =cityService.getXXX(erarid);
    return citys;
}

这个要根据你的后台写。 我这里都是瞎编的。。你替换成你的实体类和方法就好了。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式