load 页面的时候:
以相应的A,来创建drop list B
A1->list B1
A2->list B2
...将所有的list B分别放在多个Div中,每个给一个唯一的ID,隐藏所有的Div .
当选择了A时,激活对应的Div.

解决方案 »

  1.   

    如果是提交到server端处理就重新生成select框中的数据就行了。
    如果是在client端处理,那么恭喜你!这需要大量的javascript代码才能实现,而且有些高级的javascript方法在IE6以下的版本是不支持的
      

  2.   

    使用javascript。
    你要做一个servlet,通过传递进取一个url参数而返回城市列表的xml数据流。
    在选择第一个列表的时候调用一个javascript的方法,把选中的省份的编号传给这个servlet,从而获得城市的xml数据流,然后这个javascript方法用一个简单的xsl文件把这个xml数据流格式化成一个下拉列表,把生成的下拉列表的html代码放入页面上第二个列表的位置。这样,你每次选择第一个列表都会调用这个javascript方法从servlet获得数据、格式化、放入界面上。
    就可以实现你的要求了。
    javascript如:
    var rootPath,DivTag,depth,xmlPath,xmlPathWithPara,xslPath,topDIVName;
    var xml = new ActiveXObject("Microsoft.XMLDOM");
    var xsl = new ActiveXObject("Microsoft.XMLDOM");
    xmlPath = "/servlet/cityServlet";//这是你的servlet路径
    xslPath = "/cityXsl.xsl";//一个简单的xsl
    DivTag = "city";//这是你在页面上要显示城市列表的位置的id,比如是一个td标记的id
    function loadXTree(pId) {//pId是你的省份的id
        topDIVName=DivTag;
        xsl.async = false;
        xsl.load(xslPath);
        xml.async = false;
        xml.load(xmlPath+"?id="+pId);//往servlet传递省份的id
        var content=document.all(DivTag);
        content.innerHTML=xml.transformNode(xsl);
    }
    然后再写一个javascript的方法,在省份列表的onChange事件中调用,用来获得省份列表中选中的省份的value(id),传给这个loadXTree。至于xsl的写法你可以找点资料参考一下,根据你生成的xml文件的格式来写对应的xsl文件
      

  3.   

    用JAVASCRIPT肯定可以实现,但不想用大堆的JS来做
      

  4.   

    <a href="http://community.csdn.net/Expert/topic/3683/3683944.xml?temp=.7829859"/a>
    借楼主宝地一用
    大家帮我看一下这个问题呀,好急呀!!!!!!多谢!!!!!
      

  5.   

    kadina(次帅) ,当选省的时候,如何能触发生成城市的结果集
      

  6.   

    用struts实现的方法
    form中的代码:
    /**
     * 返回省
     */
    public String getProvinceCollectionSelect(){
    if(provinceCollectionSelect == null){
    return "all";
    }else{
    return provinceCollectionSelect;
    }
    }
    public void setProvinceCollectionSelect(String provinceCollectionSelect){
    this.provinceCollectionSelect = provinceCollectionSelect;
    } /**
     * 返回市
     */
    public String getCityCollectionSelect(){
    if(provinceCollectionSelect == null){
    return "all";
    }else{
    return cityCollectionSelect;
    }
    }
    public void setCityCollectionSelect(String cityCollectionSelect){
    this.cityCollectionSelect = cityCollectionSelect;
    }
    /**
     * 返回省下拉菜单
     */
    public Collection getProvinceCollection(){
    if(provinceCollection == null){
    provinceCollection = PullMenuUtils.getProvinceList();
    }
    return provinceCollection;
    }
    public void setProvinceCollection(Collection provinceCollection){
    this.provinceCollection = provinceCollection;
    }

    /**
     *根据省份返回这个省份的市下拉菜单
     */
    public Collection getCityCollection(){
    if(cityCollection == null){
    //根据省份从数据库得到市的集合
    cityCollection =
       PullMenuUtils.getCityList(getProvinceCollectionSelect());
    }
    return cityCollection;
    }
    public void setCityCollection(Collection cityCollection){
    this.cityCollection = cityCollection;
    }jsp里的代码:每次选择省份的时候重新提交一次页面
                  <tr>
                    <td height="25">地区:</td>
                    <td>省
                      <html:select property="provinceCollectionSelect" onchange="changeprovince()">
     <html:optionsCollection property="provinceCollection" />
     </html:select>(可选)
                    </td>
                    <td>市
                      <html:select property="cityCollectionSelect">
     <html:optionsCollection property="cityCollection" />
     </html:select>(可选)
     </td>
                  </tr>
    触发的事件函数:
    <script language="javascript">
      function changeprovince(){
       newRegionCountForm.action="newQueryRegionCount?parentPrivilege=20";
       newRegionCountForm.submit();
      }</script>
      

  7.   

    还是用JSP和JS结合起来做,老是提交也不是办法