jQuery MiniUI

标题: 联动查询 [打印本页]

作者: livjunjie    时间: 2013-5-9 12:42:57     标题: 联动查询

怎样定义一个联动查询
比如,一个教务系统,我需要进行高级查找,查找的选项有院系、专业、班级等,如何将这些选项关联起来?院系、专业、班级都是以下拉列表的方式列出具体值。选择后点击查询按钮,则列出符合要求的所有内容。


作者: factory    时间: 2013-5-9 14:28:58

我们有例子的
http://www.miniui.com/demo/#src=combobox/linkage-combo.html

表格内部的联动  1.单元格编辑 http://www.miniui.com/demo/#src=datagrid/celllinkedit.html
2.行编辑:http://www.miniui.com/demo/#src=datagrid/celllinkedit2.html
作者: livjunjie    时间: 2013-5-9 15:50:26

本帖最后由 livjunjie 于 2013-5-9 15:56 编辑
factory 发表于 2013-5-9 14:28
我们有例子的
http://www.miniui.com/demo/#src=combobox/linkage-combo.html

这只是其中的一部分,还要求能够根据联动选项中的值进行数据查找,将符合条件的内容列出。比如我需要查找某一学生的情况,选择了计算机系、网络工程、一班三个值,然后点击查询,则计算机系网络工程一班的所有学生的详细信息都可以从数据库中调出显示在前台页面。如图:

[attach]1838[/attach]


而且这是一个三级联动!
作者: factory    时间: 2013-5-9 15:58:07

livjunjie 发表于 2013-5-9 15:50
这只是其中的一部分,还要求能够根据联动选项中的值进行数据查找,将符合条件的内容列出。比如我需要查找 ...

获取下拉框数据mini.get(id).getValue();
然后
var obj = {
     a:"计算机系",
     b:" 网络工程",
    c:"1班"
}
grid.load(obj)

后台 分别 string a = request["a"]    string b = request["b"]   string c = request["c"]

然后用这3个条件去数据库查询

参考demo:http://www.miniui.com/demo/#src=datagrid/pager.html
作者: livjunjie    时间: 2013-5-9 16:45:58

factory 发表于 2013-5-9 15:58
获取下拉框数据mini.get(id).getValue();
然后
var obj = {

(1)string a = request["a"]    string b = request["b"]   string c = request["c"]写进TestDB.java文件中,然后修改数据查询语句?可是系别,专业,班级不是同一张表!
(2)获取下拉框数据mini.get(id).getValue();是Sting类型吗?那么,
var obj = {
      a:"计算机系",
      b:" 网络工程",
     c:"1班"
}
grid.load(obj)
中的“计算机系”可以用 var grade = mini.get(id).getValue();的“grade”代替?
即:a:"grade";

作者: factory    时间: 2013-5-9 17:09:14

livjunjie 发表于 2013-5-9 16:45
(1)string a = request["a"]    string b = request["b"]   string c = request["c"]写进TestDB.java文 ...

1.。。。这跟是不是一张表没关系啊,你后台都拿到查询条件了,该怎么查就怎么查啊,该关联查就关联查,这都是sql语句的问题
2.var grade = mini.get(id).getValue();
a:grade
作者: livjunjie    时间: 2013-5-9 19:24:32

factory 发表于 2013-5-9 17:09
1.。。。这跟是不是一张表没关系啊,你后台都拿到查询条件了,该怎么查就怎么查啊,该关联查就关联查,这 ...

查询结果返回null,我改变后的代码如下:
(1)获取值下拉列表值:
        function greatSearch(){
         var school = mini.get("school").getValue();
         var major = mini.get("major").getValue();
         var grade = mini.get("grade").getValue();

            var obj = {
             a:school,
             b:major,
             c:grade,
            }
   grid.load(obj);
        }
(2)将获取的值传到后台:
   //查询条件
    String key = request.getParameter("key");
    String school = request.getParameter("school");
    String major = request.getParameter("major");
    String grade = request.getParameter("grade");

HashMap result = new Test.TestDB().SearchEmployees(key, pageIndex, pageSize, sortField, sortOrder,school, major, grade);

(3)修改SQL查询语句:
     String sql =
    "select a.*, b.name dept_name, c.name position_name, d.name educational_name \n"
   +"from t_employee a \n"
   +"left join t_department b \n"
   +"on a.dept_id = b.id \n"
   +"left join t_position c \n"
   +"on a.position = c.id \n"
   +"left join t_educational d \n"
   +"on a.educational = d.id \n"
   +"where a.name like '%" + key + "%' \n"
   +"b.name like '%" + school + "%' \n"
   +"c.name like '%" + major + "%' \n"
   +"d.name like '%" + grade + "%' \n";

查询结果:
[attach]1841[/attach]


请问错在哪里呢?

















作者: livjunjie    时间: 2013-5-9 22:50:27

本帖最后由 livjunjie 于 2013-5-9 22:57 编辑
factory 发表于 2013-5-9 17:09
1.。。。这跟是不是一张表没关系啊,你后台都拿到查询条件了,该怎么查就怎么查啊,该关联查就关联查,这 ...

问题解决了,但是不能获取下拉列表的值,如果从下拉列表获值查询的结果为空!
我采取了文本输入框,获取输入的值可以完美解决问题。
至于下拉列表,我试了很多种方式都没有解决问题。
所以,我想问,从下拉列表取值传到后台查询没有BUG?

从文本输入框获值:
        function search() {
           var key = mini.get("key").getValue();
           var school = mini.get("school").getValue();
           var major = mini.get("major").getValue();
           var grade = mini.get("grade").getValue();
         
         grid.load({ key: key,school:school,major:major,grade:grade });
        }
        function onKeyEnter(e) {
            search();
        }
------ok!-----如图:
[attach]1842[/attach]

从下拉列表获值:同上代码,查询结果为:null!


作者: 3078825    时间: 2013-5-9 22:56:51

livjunjie 发表于 2013-5-9 19:24
查询结果返回null,我改变后的代码如下:
(1)获取值下拉列表值:
        function greatSearch(){

Chrome  F12看下请求的URL参数信息。
作者: factory    时间: 2013-5-10 09:37:03

livjunjie 发表于 2013-5-9 22:50
问题解决了,但是不能获取下拉列表的值,如果从下拉列表获值查询的结果为空!
我采取了文本输入框,获取输 ...

获取下拉列表的值?
http://www.miniui.com/demo/#src=combobox/combobox.html
看这个
作者: livjunjie    时间: 2013-5-10 11:30:13

factory 发表于 2013-5-10 09:37
获取下拉列表的值?
http://www.miniui.com/demo/#src=combobox/combobox.html
看这个

非常感谢,问题已经解决了。出错在SQL查询语句,从下拉列表获取的值是ID字段,并不是“name”值。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2