`
zoninge
  • 浏览: 33368 次
  • 性别: Icon_minigender_1
  • 来自: 长沙->广州
社区版块
存档分类
最新评论

ajax+struts实现多级下拉列表联动,无刷新

阅读更多
public   ActionForward getOrganinfo_ajax(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)  {
        String level2OrganId   =  request.getParameter( " level2OrganId " );
        System.out.print(level2OrganId);
        IDReportLogic dreportLogic  =  (IDReportLogic)SpringFactory.getBeanFactory().getBean( " dreportLogic " );
       
        response.setContentType( " text/xml;charset=UTF-8 " );
        response.setHeader( " Cache-control " ,  " no-cache " );

         try {
           
            String orgLevel  =  request.getParameter( " orgLevel " );
            String orgId  =  request.getParameter( " orgId " );
           
           

/**/ /*
以下为前台当中接受到的xml结构。

            StringBuffer sb = new StringBuffer();
            sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            String str="<select><kkk><value>11111</value><text>北京</text></kkk>";
            String str2="<kkk><value>3333</value><text>上海</text></kkk></select>";
            sb.append(str);
            sb.append(str2); */
           
            PrintWriter out  =  response.getWriter();
            out.write(str);
            out.flush();
             return   null ;
        }   catch  (Exception e)  {
             //  TODO 自动生成 catch 块
            request.setAttribute( " info " ,  " 获取二级机构异常! " );
            e.printStackTrace();
             return  mapping.getInputForward();
        }
       
    }





二级机构:

                     
                   < select name = " secOrganIdSel "  id = " secOrganIdSel "
                  onchange = " selectChangeListener('2',this.options[this.selectedIndex].value); " >
                       < option value = " -1 " > 请选择机构.. </ option >
</ select >

    三级机构:
                   < select name = " thdOrganIdSel "  id = " thdOrganIdSel "
                  onchange = " selectChangeListener('3',this.options[this.selectedIndex].value); " >
                       < option value = " -1 " > 请选择机构.. </ option >

</ select >

四级机构:
                   < select name = " forthOrganIdSel " >
                       < option value = " -1 " > 请选择机构.. </ option >
                   </ select >

    < script language = " javascript "  type = " text/javascript " >
        var  xmlHttp;
      
        function  createXMLHttpRequest() {
            if  (window.ActiveXObject) {
                xmlHttp  =   new  ActiveXObject( " Microsoft.XMLHTTP " );
           } else   if (window.XMLHttpRequest) {
                xmlHttp  =   new  XMLHttpRequest();
           }
       }
      
        // 查询指定页面
        function  selectChangeListener(orgLevel,orgId) {
      
         createXMLHttpRequest();
      
          var  url =   " <%=request.getContextPath()%>/dreportAction.do?method=getOrganinfo_ajax&orgLevel= " + orgLevel + " &orgId= " + orgId;
         xmlHttp.open( " get " ,url, true );
          if (orgLevel  ==  ' 2 ') {
              // 如果是选择默认的第一个,则是清空后面3级机构和4级机构。
              var  tempSel  =  document.getElementById( " secOrganIdSel " );
              if (tempSel.options[tempSel.selectedIndex].value  ==   - 1 ) {
                  var  tempSel_1  =  document.getElementById( " thdOrganIdSel " );
                   tempSel_1.options.length  =   1 ;
                var  tempSel_2  =  document.getElementById( " forthOrganIdSel " );
                   tempSel_2.options.length  =   1 ;
                    return   false ;
             }
             xmlHttp.onreadystatechange  =  callback2;
         } else   if (orgLevel  ==  ' 3 ') {
              // 如果三级机构默认的是第一个选项,则清空第4级机构
            
              var  tempSel  =  document.getElementById( " thdOrganIdSel " );
              if (tempSel.options[tempSel.selectedIndex].value  ==   - 1 ) {
               var  tempSel_2  =  document.getElementById( " forthOrganIdSel " );
                   tempSel_2.options.length  =   1 ;
                  return   false ;
             }
             xmlHttp.onreadystatechange  =  callback3;
         }
        
         xmlHttp.send( null );
      }
     
       // 返回信息处理,二级机构下拉列表返回结果
       function  callback2() {
          if  (xmlHttp.readyState  ==   4 )  {
            if  (xmlHttp.status  ==   200 )  {
                var  xmlDoc  =  xmlHttp.responseXML;
               changeSel(' 2 ',xmlDoc);
           } else {
                 window.alert( " 您所请求的页面有异常。 " );
           }
         }          
      }
     
     
       // 返回信息处理,三级机构下拉列表返回结果
       function  callback3() {
          if  (xmlHttp.readyState  ==   4 )  {
            if  (xmlHttp.status  ==   200 )  {
                var  xmlDoc  =  xmlHttp.responseXML;
               changeSel(' 3 ',xmlDoc);
           } else {
                 window.alert( " 您所请求的页面有异常。 " );
           }
         }          
      }
     
       // 更新机构下拉列表
       function  changeSel(orgLevel,xmlDoc) {
     
            // var xsel = xmlDoc.getElementsByTagName('kkk');
            var  xsel  =  xmlDoc.documentElement.childNodes;

            // alert(xsel.length);
            if (orgLevel  ==  ' 2 ') {
                // 二级机构,3级机构和4级机构需要清空。
                var  tempSel_1  =  document.getElementById( " thdOrganIdSel " );
               tempSel_1.options.length  =   0 ;
               tempSel_1.add( new  Option('请选择机构',' - 1 '))
                var  tempSel_2  =  document.getElementById( " forthOrganIdSel " );
               tempSel_2.options.length  =   0 ;
               tempSel_2.add( new  Option('请选择机构',' - 1 '))
              
                for ( var  i  =   0 ; i  <  xsel.length;i ++ ) {
                    var  xvalue  =  xsel[i].childNodes[ 0 ].firstChild.nodeValue;
                   var  xtext  =   xsel[i].childNodes[ 1 ].firstChild.nodeValue;
                    var  option  =   new  Option(xtext,xvalue);
                  tempSel_1.add(option);
               }
              
          } else   if (orgLevel  ==  ' 3 ') {
               // 三级机构,四级机构需要清空

                var  tempSel_2  =  document.getElementById( " forthOrganIdSel " );
             tempSel_2.options.length  =   0 ;
              tempSel_2.add( new  Option('请选择机构',' - 1 '))
             
                 for ( var  i  =   0 ; i  <  xsel.length;i ++ ) {
                   var  xvalue  =  xsel[i].childNodes[ 0 ].firstChild.nodeValue;
                   var  xtext  =   xsel[i].childNodes[ 1 ].firstChild.nodeValue;
                   var  option  =   new  Option(xtext,xvalue);
                  tempSel_2.add(option);
              }
              
          }
         
    }
   </ script >
分享到:
评论
2 楼 306781704 2009-02-20  
看了几遍终于看明白了,就是布局不清晰,内容还可以
1 楼 306781704 2009-02-20  
条理不清晰,代码也没全部贴出来

相关推荐

    ajax+json实现多级联动菜单

    ### 使用Ajax+JSON实现多级联动菜单的知识点详解 #### 一、背景介绍与概念解析 随着互联网技术的发展,用户对交互式应用的需求日益增长。RIA(Rich Internet Applications)概念的提出更是加速了这一趋势。其中,...

    Struts2+Hiberante+ajax+Mysql 三级联动

    在此项目中,这三者与MySQL数据库结合,实现了所谓的“三级联动”效果,这是一种常见的前端交互功能,常用于下拉菜单或多级选择场景。 **Struts2** 是一个基于MVC设计模式的Java Web框架,它负责控制应用程序的流程...

    js+servlet+struts 动态二级联动菜单

    在"js+servlet+struts 动态二级联动菜单"的实现中,我们看到涉及到三种关键的技术: 1. **JavaScript (JS)**:这是一种客户端的脚本语言,主要用于增强网页的交互性和动态性。在二级联动菜单中,JavaScript负责处理...

    Struts---用ajax实现三级下拉列表

    在Struts框架中,使用AJAX(异步JavaScript和XML)技术可以实现动态交互的用户界面,例如这里的三级下拉列表。这个例子是为学生注册系统设计的,它需要用户选择学院、专业和班级,每一步的选择都会影响下一步的选项...

    ssh+jquery+ajax二级联动

    这通常在多级下拉菜单或地区选择等场景中常见,例如:省份选择后,城市列表会动态加载更新。 1. **Struts2**:作为MVC框架,Struts2主要负责处理HTTP请求,将用户请求转发到相应的Action,Action执行业务逻辑后返回...

    struts实现下拉框多级联动

    在Struts框架中实现下拉框的多级联动是一项常见的需求,比如在地址选择时,可以选择国家、省份、城市等,每一级的选择都会影响下一级的选项。 在Struts框架中,实现下拉框的联动通常涉及到以下几个关键知识点: 1....

    三级联动(spring+struts+oracle)

    总之,"三级联动(spring+struts+oracle)"是一个利用主流Java Web技术实现的动态下拉菜单功能,它通过Spring进行业务逻辑控制,Struts处理用户交互,Oracle数据库存储和提供数据。这样的系统设计保证了数据的实时性和...

    JSP、Java实现选择框多级连动

    实现选择框多级连动需要使用 JSP 和 Java technologies,并结合 Struts 框架和 JavaScript 代码来实现。在开发过程中,需要注意数据库表的设计、表单 bean 的设计、服务器端的数据处理和返回等方面。

    联动(struts2+json+jquey)

    然而,对于一些复杂的数据展示,如多级联动选择框,Struts2的内置标签可能无法满足需求,这就引出了JSON的角色。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    dwr+struts 三级菜单

    本项目是一个基于`DWR`与`Struts1.2`的三级联动菜单,通过与`SQL Server`数据库的交互,实现了数据的动态加载和展示。下面我们将深入探讨这两个框架以及它们如何协同工作来创建这样的功能。 首先,`DWR` 是一个Java...

    struts2 jquery json ajax 三级联动菜单

    在“三级联动菜单”的场景中,这些技术被巧妙地结合在一起,实现了多级选择的联动效果。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它简化了Java应用的开发,提供了处理HTTP...

    Struts2 + spring + hibernate + dwr 完美整合代码

    **DWR (Direct Web Remoting)** 是一种JavaScript到Java的远程调用技术,允许在浏览器端直接调用服务器端的Java方法,从而实现Ajax无刷新更新页面的效果。在用户注册和多级下拉联动功能中,DWR起到了关键作用,它...

    SSH+jQuery+Ajax框架做的地区选择

    这种联动效果通过Ajax和jQuery的配合实现,使得用户可以在一个界面上完成连续的多级选择,而无需多次提交表单。 综上所述,这个项目展示了SSH框架如何与前端技术相结合,构建出一个高效的、具有良好交互体验的地区...

    DWR 实现三级联动(2)

    3. **Struts2的二级联动**:Struts2框架提供了内置的二级联动支持,但效率相对较低,且不适用于更复杂的多级联动需求。因此,开发者通常会寻找其他解决方案,如DWR,来提高性能和用户体验。 4. **DWR(Direct Web ...

    用Struts2+Spring+Hibernate三大框架完成的级联操作

    在这个项目中,级联省市县部分,可能涉及到多级联动的逻辑,需要在数据库中维护省、市、县之间的层级关系,可能通过parentId字段来实现。而年月日的级联则相对简单,可能只需要一个日期选择器,通过JavaScript处理...

    jsp从数据库获取数据填充下拉框实现二级联动菜单的方法.docx

    在Web开发中,为了提高用户体验和数据处理效率,经常需要实现动态数据填充功能,尤其是对于多级联动的选择菜单。本文将详细介绍如何利用JSP技术结合数据库查询,实现二级联动菜单的具体步骤和技巧。 #### 二、准备...

    Java二级联动

    它通常指的是两个或多个下拉菜单之间存在的联动关系,例如在选择省份后,城市下拉菜单会自动更新为对应省份的城市列表,进一步选择城市后,区域下拉菜单会显示该城市对应的区域信息。这种功能提高了用户界面的交互性...

    struts框架 mvc模式 库存管理系统

    教材库存管理系统,用的struts1.38的框架,MVC的模式,有用到Ajax 实现无刷新分页、下拉框多级联动、查找提示及后台验证,用JExcel实现excel的导入导出等技术。tomcat6.0的服务器,数据库是SQL Server2000. 内附需求...

    使用easyui中的conbox结合ssh注解方式实现省市区三级联动效果

    Combobox是EasyUI提供的一种下拉框控件,它不仅具备基本的下拉选择功能,还支持输入查询和级联选择,非常适合构建多级联动的效果。在实现省市区三级联动时,Combobox会根据用户在上级级联框中的选择动态更新下一级的...

    Struts2JQueryJson

    例如,多级联动页面可能利用JQuery的AJAX功能异步加载数据,用户在选择一级分类后,二级分类会动态更新,这种交互增强了用户体验。 对于登陆验证页面,通常会有一个表单提交用户凭据,Struts2可以通过Action类接收...

Global site tag (gtag.js) - Google Analytics