1,页面 标签代码
<td width="10%" align="right">
处理部门:</td>
<td width="15%" align="left">
<select name="department" style="width: 133" οnchange="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();
}