网上一些级联菜单通常是客户端数据(就是数据事先定义好),关于动态数据的三级级联菜单很少,今天尝试做了一个
数据库表逻辑很简单 用的Mysql数据库
三张表
学校表 id name
班级表 id name 学校主键
学生表 id name 班级主键
DAO中三个方法
查出所有学校
根据学校id查出相对应的班级
根据班级id查出相对应的学生
POJO类Menu
id name
基本思路
在第一级菜单中(选择学校的) 利用onblur函数(可能有更好的函数,但我不知道。。),调用第一个方法 查出所有的学校,把结果遍历,每循环一次就new一个POJO类,把取出来的id,name存入这个POJO类中,再把POJO类存入List,让相关的Action拿到这个List,把List循环,在每一次取出id和name时,在id与name之间加一条“_”,循环结束后,在结尾加入一个标示用的字符串,最后,再把所有的字符串存入一个新的字符串中,把这个新的字符串输入到前台
前台利用AJAX技术,在创建XMLHttpRequest时,对这个字符串进行拆分,根据标示字符串,把拆分出来相应的name和id写入下拉列表框中,name用于显示,id用于传入下一级菜单的值
这个三级级联菜单到是可以实现功能了,不过做的不是很完美。比如第一次加载时用的JS函数,还有选择某项级联到下一级时,用的是onChange函数,感觉也不是很好。。希望谁能改进改进,做的更好吧。
源码如下