如题:二级联动 修改 保持二级数据,欢迎讨论遇到最后一小步问题,望大伙帮忙看看;如有更好的方法,欢迎贴出代码 
不会用那个显示代码的写法,有会的,告知一下
----------------------------------------------------------------------------------------------------jsp代码如下:<form method="post" name="form1">
<table border=0 cellpadding="5" cellspacing="1" class="table_huei">
<tr>
<td colspan="2" class="tr_title1"><center>管理项目信息修改</center></td> 
</tr>
<tr class="tr_data1">
   <td>公司名称</td>
   <td><select name="companyName" size="1" style="width:220px" onChange="change();">
   <c:forEach items="${list}" var="item" >
   <c:set var="selectedStr" />
     <c:if test="${item.id eq mpiv.company.id}">
       <c:set var="selectedStr" value="selected" />
     </c:if>
     <option ${selectedStr} value="${item.id}">${item.companyName}</option>
   </c:forEach>
   </select></td>
</tr>
<tr class="tr_data1">
   <td>小区名称</td>
   <td><select name="zoneName" size="1" style="width:220px">
   <option selected="selected" value="all_2">--请选择小区--</option>
   </select></td>
</tr>-------------------------------------------------------------------javascript如下:<script type="text/javascript">
  function change(){
    var zone_id = ${zone_id};
    var load_id = document.form1.companyName.options[document.form1.companyName.selectedIndex];
    deal(load_id.value, zone_id);
  }
</script>
<script type="text/javascript">
  var res;
  var zid;
  function deal(id, z_id) {
    zid = z_id;
var url = "${cxt}company/management_project_info/managementProjectChange.jsp?change_id=" + escape(id);
init();
res.open("GET", url, true);
res.onreadystatechange = callback;
res.send(null);
  }
  function callback() {
if(4 == res.readyState) {
if(200 == res.status) { parse(res.responseXml); }
}
  }
  function init() {
    if(window.XMLHttpRequest) {
res = new XMLHttpRequest();
} else if(window.ActiveXObject) {
res = new ActiveXObject("Microsoft.XMLHTTP");
}
  }
  function parse(xml) {
var zones = xml.getElementsByTagName("zones")[0];
document.form1.zoneName.options.length = zones.childNodes.length + 1;
document.form1.zoneName.selectedIndex =0;
document.form1.zoneName.options[0].text = '--请选择小区--';
    document.form1.zoneName.options[0].value = -1;
for(var i=0; i<zones.childNodes.length; i++) {
var zone = zones.childNodes[i];//每一组zone
var id = zone.childNodes[0].childNodes[0].nodeValue;
var name = zone.childNodes[1].childNodes[0].nodeValue;
document.form1.zoneName.options[i+1].text = name;
        document.form1.zoneName.options[i+1].value = id;
        if(id = zid) {
            document.form1.zoneName.innerHTML = '<option selected="selected" value="dsd">dsd</option>'; 
        }
}
  }
</script>------------------------------------------------------------ajax到的jsp
<%
int change_id = StringHandle.strToInt(StringHandle.getNotNullStr(request.getParameter("change_id")));
StringBuffer buf = new StringBuffer();
String sql = "";
if(change_id > 0) {
sql = "z.spare2=" + change_id;
} else {
sql = "z.spare2=" + (-1);
}
List zoneList = new ZoneBean().getZoneInfoListBySql(sql);
for(int i=0; i<zoneList.size(); i++) {//XML form
ZoneView zv = (ZoneView)zoneList.get(i);
buf.append("<zone><id>" + zv.getId() + "</id><name>" + zv.getName() + "</name></zone>");
}
buf.insert(0, "<zones>");
buf.append("</zones>");
buf.insert(0, "<?xml version='1.0' encoding='gb2312'?>");
response.setContentType("text/xml;charset=gbk");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0); 
response.getWriter().write(buf.toString());
%>
------------------------------------------------------------
已经实现二级联动,切换一级,二级可以显示。一级可以默认选中,二级所有能展示,就是无法选中  具体那个值,具体代码应该如何加上呢-----------------------------------------------------------一级为公司,二级为小区,三级为项目,现在是修改项目,需要关联前两集信息。