Java web 级联下拉菜单的做法分享

本文分享了在Java Web项目中实现级联下拉菜单的两种方法:一是结合Ajax和jQuery,当选择大类型后,通过Ajax请求更新小类型下拉菜单;二是利用Jquery与JSTL,通过获取数据库数据并使用C标签在前端进行遍历展示。对于新手开发者,这两种方法提供了实践参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在折腾一个很无聊的所谓的商城项目。里面有一个添加商品信息和更新商品信息都需要用到级联下拉菜单。如果只是单纯的普通html就方便多了。于是想了两个方法。

方法一 Ajax+jquery

//#“dalei”=大类型的下拉框。相对应xiaolei=小类型的下拉框
当你点击了大类型中的除了本身被选中之外的其他选项。小类型的下拉框就会进行清空和更新。

$(function(){
		$("#dalei").change(function(){
			var s = new Array();
			$("#xiaolei").empty();
			var id=$("#dalei").val();
			$.ajax({
				"url":"danyi?action=fina&id="+id,
				"async":true,
				"success":function(data){
					var s=data.split(",");
					for(var i=0;i<s.length;i++){
						var i1= new Array();
						i1=s[i].split("@");
						if(i1[1]!=undefined&&i1[0]!=""){
							var s1="<option value="+i1[1]+">"+i1[0]+"</option>";
								$("#xiaolei").append(s1);
						}
					
					}
				}
			})
		})
	})

相对应后台就需要做出反应处理。

当然我的做法和用词都没有使用驼峰命名法那些比较正规。。

 int did = Integer.valueOf(request.getParameter("id"));
 //这里通过ajax传送一个ID过来后台servlet。接受到了id就开始遍历这个id。然后寻找相对应的属性
                List<shoptype> sc1 = st.getshoptype();  
                //这个st.getshoptype 是拿到数据库中的一个表。此表里面有对应的大小类
               String pinjie = "";
               //new一个字符串进行拼接传输一条字符串过去那边分解。
               //这里使用了“ @ ”  和“ ,” 2个分隔符。
                for (int i = 0; i < sc1.size(); i++) {
                if (did == sc1.get(i).getGtype_parentid()) {
                 pinjie = pinjie + sc1.get(i).getGtype_name() + "@" + sc1.get(i).getId() + ",";
                    }
                }
                response.getWriter().write(pinjie);

方法二 Jquery+jtsl

原理是通过先获取到数据库相对应的那张表里面的所有值。然后转发一个sesion给前台利用C标签来遍历。当我对大类型的选项进行了改变。相对应的下拉也会更变属性。
这里大类的name属性=goods_parentid
小类的name属性=goods_fatherid

$(function(){	
$("[name='goods_parentid']").change(function () {
            var id = $(this).val();
            $("[name='goods_fatherid']").html("");

            var html = "";
            <c:forEach items="${GOODTYPES }" var="goodType" varStatus="">
                if ("${goodType.gtype_parentid }" == id){
                    html +="<option value='${goodType.id }'>${goodType.gtype_name }</option>";
                }
</c:forEach>
            $("[name='goods_fatherid']").html(html);
        });

后台servlet相对应的将我拿到的所有数据转发过来

List<shoptype> sc1 = st.getshoptype();
request.getSession().setAttribute("GOODTYPES",sc1);

方法就分享到这里啦~ 新手代码能力差是这样的啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值