触动 多项选择 获取关联的值 (ext js jQuery sturs hibernate springside)

来源:互联网 发布:80s下载软件 编辑:程序博客网 时间:2024/06/10 02:51

1,页面  标签代码

                        <td width="10%" align="right">

处理部门:
</td>
<td width="15%" align="left">
<select name="department" style="width: 133"  onchange="getPerson(this)" id="department_id">
<option value="" >
--请选择--
</option>
<OPTION VALUE="质量管理部" <%="质量管理部".equals(department) ? "selected" : ""%>>
质量管理部
</OPTION>
<!-- 
<OPTION VALUE="质量管理中心" <%="质量管理中心".equals(department) ? "selected" : ""%>>
质量管理中心
</OPTION>
-->
</select>
</td>
<td width="10%" align="right">
处理人:
</td>
<td width="15%" align="left">
<select id="person_id" style="width: 90" name="person">
<option style="color: gray" value="${person}" >
--请选择--
</option>

</select>


2,js代码

                function getPerson(person1){
   var department = document.getElementById("department_id").value;   
   //获取触发关联 的id
var person = document.getElementById("person_id").value;
//获取被动触发的关联id
var sel = dwr.util.getValue("person_id");
Ext.Ajax.request( {
//异步请求Ajax 的对象request
url : '${ctx}/complaints/satisfiedchart!qureyPerson.action',
//请求的路径
params : {  
//参数 要与 对应的 action在的参数对应
department : department
},
//判断结果
success : function(response) {
//转换成js
var json = Ext.util.JSON.decode(response.responseText);
if (json.success) {
//获取数据
var data = json.cmList;
//判断数据
if ("" == data) {
document.getElementById("department_id").focus();
//第一次加载页面为空显示   --请选择--
return;
// $("#person_id").empty();
} else {
$("#person_id").empty();
//对获取到的数据进行迭代
for ( var i = 0; i < data.length; i++) {
var id = data[i];
var name = data[i];
$("#person_id").append(
"<option value='" + id + "'>" + name + "</option>");
}
if(person!=""){
////加载页面后为空显示   当前的处理人
document.getElementById("person_id").value=person;
}
//将上次的 选择清空 并赋值
dwr.util.removeAllOptions('department');
dwr.util.addOptions('department', data);
}
}
}
} )
}

3.Action 代码

                         //通过处理部门得到具体的处理人
//定义ext传过来的参数对应
private String department;
public void qureyPerson() throws Exception{
//new一个响应的对象
HttpServletResponse response = ServletActionContext.getResponse();
//参数赋值
String cp_department = department;
//定义sql
String sql1=" select name from t_users t where t.departmentcomposename ="+"'"+cp_department+"'";
//查询数据
List<Users>  jsrListName = (List)complaintsManager.findBySQL(sql1);
response.setContentType("text/javascript"); //后台控制的代码
//new 一个 writer 对象
   PrintWriter writer = response.getWriter();
   //将得到的list集合转为JSON对象传给前台处理
   JSONArray j = JSONArray.fromObject(jsrListName);
   //调用有值 返回给ext
   writer.println("{'success':true,'cmList':"+j.toString()+"}");   
}

     

3.1,hibernate 方法

           //報表查詢方法
public List<Object> findBySQL(final String sql) {
return complaintsdao.findBySQL(sql);
}

             public List<Object> findBySQL(final String sql) {
  Session session = this.getSession();
  List<Object> catNameList = null;
  try {
    catNameList = session.createSQLQuery(sql).list();
   return catNameList ;
  }catch(Exception ex)
  {
  ex.printStackTrace();
  } 
return catNameList;

            public Session getSession() {
return sessionFactory.getCurrentSession();
}



原创粉丝点击