最近在做一个ssm框架下的练习项目(医院类项目),在添加挂号信息时需要选择科室和医生,项目要求,科室和医生必须从数据库中读取,且根据第一个下拉选择框选择的科室,要在第二个选择框中能对应弹出该科室的医生列表。
此时首先我就想到的就是省市级联操作类型,但自己这部分只记得简单的二维数组进行操作,那时数据都是定义好的,并不涉及到动态操作。因此当时并没有选择这个思路。但应该是能做的。
我就想不管怎么样,都要先动态获取第一个选择框的所有信息,就在前端页面写了一个ajax请求,动态获取所有的科室列表。
科室表
一级列表ajax请求
将获取到的信息通过字符串拼接的方式最后通过jquery用id选择器的.html()方法写入<select></select>中。
效果如下:
注意:关键点来了!!!(思路部分)
可以看到我一级列表里value是赋值的,且这里的值和数据库中的id值相等(代码里不太严谨,正确写法是获取dpt_id填入value值里),那么如果我能拿到对应的value值(dpt_id的值),再根据dpt_id查询医生集合,那么不就可以获取到医生列表了嘛!
前提条件
医生表里有dpt_id这个字段,提供了两表联查的条件
doctor表设计如下
注意:关键点来了!!!(代码实现部分)
现在要做的就是想一个法子,在点击对应科室的时候,获取其对应的value值,我就在网上查(由于前段的一些方法不熟悉),发现如下:
1、onchange():用在select标签里,用来获取对应value值
2、自定义方法(自己想怎么写怎么写) getSelectValue(this.value)
其中参数this.value将当前的value值做形参传入该方法中,代码如下:
然后就可以完成这个小功能了,看看效果吧