最近在做产品比较,这其中就要用到三级联动查询产品,效果如下图
这其中的所有数据全部来自数据库,使用Ajax异步加载技术,完成这样的三级联动。
对于第一级查询,请求是写在Tree2.jsp中,通过这个
<a href="productCompare.action" >产品对比</a>链接发送请求到productCompare.action中,在
productCompare.
action中 ,写这样一个函数
在这个函数中会对数据库进行查询,得到第一级中的有关数据,把查询到的东西放到list中,并把这个list放到request中去,然后通过
request.getRequestDispatcher("/productCompare.jsp").forward(request, response);跳转回
productCompare.jsp中去在
productCompare.jsp中利用<c:forEach></
c:forEach>进行循环显示。
这样第一级查询就出来了。
下面是第二级及第三级查询都要通过Ajax异步加载来获取,后面的选项都是基于前面的选择,在jsp中使用jQuery来进行处理
意思大致是打开页面后就会执行下面的这个函数,当第一级改变后,会触发这个函数,把第一级获取的值传回后台:listKind.action中,这传回的其实是第一级所选择的值的id,然后回到action中进行处理
首先根据传来的id值到category2中查询PID= id的所有值,把它放到一个list中,并把此list转换为json数据格式,通过response返回到jsp中,通过
自己拼出一个字符串添加到<select>中。
第三级与第二级一样,不再多言!