<tr>
<td width="100" align="right" bgcolor="f7f7f7">
调出公司:
</td>
<td>
<select name="OLD_COM_NAME" style="width:150"
onchange="getDeptsForCom(this.value,'OLD_DEPT_NAME');">
<option value="">
&nbsp;请选择公司
</option>
<c:forEach items="${companys }" var="obj">
<option value="${obj.ORG_ID}">
&nbsp; ${obj.ORG_NAME }
</option>
</c:forEach>
</select>
</td>
<td width="100" align="right" bgcolor="f7f7f7">
调出部门:
</td>
<td>
<select name="OLD_DEPT_NAME" style="width:200"
onchange="getPostsForDept(this.value,'OLD_POST_NAME');">
<option value="">
&nbsp;请选择部门
</option>
</select>
</td>
<td width="100" align="right" bgcolor="#f7f7f7">
调出职位:
</td>
<td>
<select name="OLD_POST_NAME" style="width:120"
class="required">
<option value="">
&nbsp;请选择岗位
</option>
</select>
</td>
</tr>
function getDeptsForCom(comCode, sel, value) {
if ("" == comCode) {
$(sel).length = 1;
return;
}
var finish = function (obj) {
var xml = obj.responseXML;
var orgs = xml.getElementsByTagName("org");
var ids = new Array();
var names = new Array();
ids[0] = "";
names[0] = "\u8bf7\u9009\u62e9\u90e8\u95e8";
if (orgs.length > 0) {
for (var i = 0; i < orgs.length; i++) {
ids[i + 1] = orgs[i].childNodes[0].firstChild.data;
names[i + 1] = orgs[i].childNodes[1].lastChild.data;
}
} else {
alert("\u6b64\u516c\u53f8\u6682\u65f6\u65e0\u90e8\u95e8\uff0c\u8bf7\u5148\u5efa\u7acb\u90e8\u95e8\uff01");
}
setOption(ids, names, sel, value);
};
var url = "/system/ajax.shtml?method=getDeptsByCom&orgId=" + comCode;
new Ajax.Request(url, {method:"post", parameters:null, onComplete:finish});
}
function getPostsForDept(deptCode, sel, value) {
if ("" == deptCode) {
$(sel).length = 1;
return;
}
var finish = function (obj) {
var xml = obj.responseXML;
var posts = xml.getElementsByTagName("post");
var ids = new Array();
var names = new Array();
ids[0] = "";
names[0] = "\u8bf7\u9009\u62e9\u5c97\u4f4d";
if (posts.length > 0) {
for (var i = 0; i < posts.length; i++) {
ids[i + 1] = posts[i].childNodes[0].firstChild.data;
names[i + 1] = posts[i].childNodes[1].lastChild.data;
}
} else {
alert("\u6b64\u90e8\u95e8\u6682\u65e0\u5c97\u4f4d\uff0c\u8bf7\u521b\u5efa\u5c97\u4f4d\uff01");
}
setOption(ids, names, sel, value);
};
var url = "/system/ajax.shtml?method=getPostByDept&orgId=" + deptCode;
new Ajax.Request(url, {method:"post", parameters:null, onComplete:finish});
}public ActionForward getAllCom(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
StringBuffer sb = new StringBuffer("<orgs>");
List<Map> list = this.getAllComs();
for (Map map : list) {
sb.append("<org><orgId>").append(map.get("ORG_ID")).append(
"</orgId>").append("<orgName>").append(map.get("ORG_NAME"))
.append("</orgName></org>");
}
sb.append("</orgs>");
String str=sb.toString();
this.responseHtml(response, sb.toString());
return null;
} public ActionForward getDeptsByCom(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
StringBuffer sb = new StringBuffer("<orgs>");
String id=this.getParameter(request, "orgId");
List<Map> list = this.getDeptsByParent(this.getParameter(request,
"orgId"), this.getParameter(request, "orgId"));
this.getXMLDepts(this.getParameter(request, "orgId"), list, sb, "");
sb.append("</orgs>");
String str=sb.toString();
this.responseHtml(response, sb.toString());
return null;
} private StringBuffer getXMLDepts(String comCode, List<Map> list,
StringBuffer sb, String flag) {
flag += "--";
for (Map map : list) {
sb.append("<org><orgId>").append(map.get("ORG_ID")).append(
"</orgId>").append("<orgName>").append(
flag + map.get("ORG_NAME")).append("</orgName></org>");
List<Map> nextlist = this.getDeptsByParent(comCode, map.get(
"ORG_ID").toString());
this.getXMLDepts(comCode, nextlist, sb, flag);
} return sb;
} public ActionForward getPostByDept(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
StringBuffer sb = new StringBuffer("<posts>");
List<Map> list = this.getPositionsByOrgId(this.getParameter(request,
"orgId"));
for (Map map : list) {
sb.append("<post><postId>").append(map.get("POST_ID")).append(
"</postId>").append("<postName>").append(
map.get("POST_NAME")).append("</postName></post>");
}
sb.append("</posts>");
this.responseHtml(response, sb.toString());
return null;
}

解决方案 »

  1.   

    现在保存的是ID,我想保存NAME,应该怎么改?
      

  2.   

    弱弱的问一句你是想获取
     <select name="OLD_COM_NAME" style="width:150"
                                                                    onchange="getDeptsForCom(this.value,'OLD_DEPT_NAME');">
                                                                    <option value="">
                                                                        &nbsp;请选择公司
                                                                    </option>
                                                                    <c:forEach items="${companys }" var="obj">
                                                                        <option value="${obj.ORG_ID}">
                                                                            &nbsp; ${obj.ORG_NAME }
                                                                        </option>
                                                                    </c:forEach>
                                                                </select>
    这个select中的obj.ORG_NAME么?
    最有效的方法是
       在form提交js时获取
       给上面的select添加id
       <select name="OLD_COM_NAME" id="OLD_COM_NAME" style="width:150" onchange="getDeptsForCom(this.value,'OLD_DEPT_NAME');">
       添加id是为了火狐的兼容性
       用如下函数你就可以获取到你需要的name了。
       
            function  getOrgName(){
           var getOrgName;
           
           var selectOrg=  document.getElementById("OLD_COM_NAME");
            for(var i=0;i<selectOrg.options.length;i++){
                    if(selectOrg.options[i].selected==true)
                       {alert();
                         var id = selectOrg.options[i].value;
                         var text = selectOrg.options[i].text;
                         getOrgName = text ;
                     }
               }
               
          }
      

  3.   

    参考了些别人的东西js可以更简单
     function  getOrgName(){ 
          var getOrgName=  selectOrg.options[selectOrg.options.selectedIndex].text;
    }