`
306781704
  • 浏览: 86809 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

ajax+struts完成三级联动下拉框

    博客分类:
  • js
阅读更多
"text/javascript">   
        var req;   
        window.onload=function(){   
        }   
           
        function Change_Select()   
        {   
            var zhi=document.getElementById('select1').value;   
            var url="doSelect.do?method=getSelect2&id="+zhi;   
            if(zhi=="0"){   
                alert("请选择您要察看的信息");   
                   return;   
            }else{   
                if(window.XMLHttpRequest)   
                {   
                    req=new XMLHttpRequest();   
                }else if(window.ActiveXObject)   
                {   
                    req=new ActiveXObject("Microsoft.XMLHTTP");   
                }   
                   
                if(req)   
                {   
                    req.open("GET",url,true);   
                    req.onreadystatechange=callback;   
                    req.send(null);   
                }   
            }   
        }   
           
        function Change_Select2()   
        {   
            var zhi=document.getElementById('select2').value;   
            //alert(zhi.substring(0,2));   
            if(zhi=="0"){   
                alert("请选择您要察看的信息");   
                   return;   
               }   
            if(true){   
                var url="doSelect.do?method=getSelect3&id="+zhi;   
                if(window.XMLHttpRequest)   
                {   
                    req=new XMLHttpRequest();   
                }else if(window.ActiveXObject)   
                {   
                    req=new ActiveXObject("Microsoft.XMLHTTP");   
                }   
                   
                if(req)   
                {   
                    req.open("GET",url,true);   
                    req.onreadystatechange=callback2;   
                    req.send(null);   
                }   
            }else{   
                parent.topFram.location ="sqdSelectAll.go?method=getlistAll&id="+zhi;   
            }   
        }   
           
        function Change_Select3()   
        {   
            var zhi=document.getElementById('m_lbbm_th').value;   
            //alert(zhi.substring(0,2));   
            if(zhi=="0"){   
                alert("请选择您要察看的信息");   
                   return;   
               }else{   
                parent.topFram.location ="sqdSelectAll.go?method=getlistAll2&id="+zhi;   
            }   
        }   
           
        function callback()   
        {   
            if(req.readyState == 4)   
            {   
                if(req.status == 200)   
                {   
                    parseMessage();   
                }else{   
                    alert("Not able to retrieve description"+req.statusText);   
                }   
            }   
        }   
           
        function callback2()   
        {   
            if(req.readyState == 4)   
            {   
                if(req.status == 200)   
                {   
                    parseMessage2();   
                }else{   
                    alert("Not able to retrieve description"+req.statusText);   
                }   
            }   
        }   
function parseMessage()   
        {   
            var xmlDoc=req.responseXML.documentElement;   
            var xSel=xmlDoc.getElementsByTagName('select');   
            var select_root=document.getElementById('select2');   
            select_root.options.length=0;   
               
            for(var i=0;i
            {   
                var xValue=xSel[i].childNodes[0].firstChild.nodeValue;   
                var xText=xSel[i].childNodes[1].firstChild.nodeValue;   
                var option=new Option(xText,xValue);   
                try{   
                    select_root.add(option);   
                }catch(e){   
                }   
            }   
        }   
           
        function parseMessage2()   
        {   
            var xmlDoc=req.responseXML.documentElement;   
            var xSel=xmlDoc.getElementsByTagName('select');   
            var select_root=document.getElementById('select3');   
            select_root.options.length=0;   
               
            for(var i=0;i
            {   
                var xValue=xSel[i].childNodes[0].firstChild.nodeValue;   
                var xText=xSel[i].childNodes[1].firstChild.nodeValue;   
                var option=new Option(xText,xValue);   
                try{   
                    select_root.add(option);   
                }catch(e){   
                }   
            }   
        }                           
      
2、html代码
   



xml 代码
<html:form action="/doSelect.do"  >    
    <TABLE class = "cbToolbar" id = "idToolbar" cellpadding = '0' cellspacing = '0'>  
        <TR align = "left" valign = "top" >  
            <TD  NOWRAP> 物质类别:     
                <html:select  property="select1" onchange="Change_Select()">  
                    <html:option value="0">请选择html:option>  
                       <html:options collection="list1" property="typId" labelProperty="typName"/>  
                html:select>     
                   
                   
                <html:select property="select2" styleId="m_lbbm_se" onchange="Change_Select2()">  
                    <html:option value="0">   html:option>  
                html:select>  
                <html:select property="select3" styleId="m_lbbm_th" onchange="Change_Select3()">  
                    <html:option value="0">   html:option>  
                html:select>  
  
            TD>  
               
        tr>  
    table>  
     html:form>   



3、控制器源码

java 代码
public ActionForward list1(   
  ActionMapping mapping,   
  ActionForm form,   
  HttpServletRequest request,   
  HttpServletResponse response) {   
  
  String lan = (String)request.getSession().getAttribute("languageType");   
  if(lan==null)lan ="1";    
     
  String HQL = "from Type t where t.typLang= :lang  and t.leve=:leve order by t.typOrder";   
  Query query = dao.getHQLQuery(HQL);   
  query.setString("lang",lan);   
  query.setInteger("leve",2);   
     
  List types = query.list();   
  request.setAttribute("list1",types);   
  return mapping.findForward("list");   
}   
  
    
    
public ActionForward getSelect2(   
   ActionMapping mapping,   
   ActionForm form,   
   HttpServletRequest request,   
   HttpServletResponse response) {   
     
  String lan = (String)request.getSession().getAttribute("languageType");   
  if(lan==null)lan ="1";    
     
  String id=request.getParameter("id");   
           
  response.setContentType("text/xml;charset=UTF-8");   
  response.setHeader("Cache-Control","no-cache");   
        String xml_start="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";   
        xml_start+="<selects>";   
        String xml_end="</selects>";   
        String xml="<select><value>"+"0"+"</value><text>"+"select"+"</text></select>";   
        String m_lbbm_se="";   
        String m_lbmc_se="";   
        List LbfList=null;   
          
        LbfList=getList(3,lan,new Integer(id).intValue());   
          
        Iterator it=LbfList.iterator();   
        while(it.hasNext()){   
            Type cgsqd=(Type)it.next();   
            m_lbbm_se=cgsqd.getTypId().toString();   
            m_lbmc_se=cgsqd.getTypName();   
            xml +="<select><value>"+m_lbbm_se+"</value><text>"+m_lbmc_se+"</text></select>";   
        }   
        String last_xml=xml_start+xml+xml_end;   
        try {   
         System.out.println(last_xml);   
         response.getWriter().write(last_xml);   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        return null;   
  
  }   
    
public ActionForward getSelect3(   
   ActionMapping mapping,   
   ActionForm form,   
   HttpServletRequest request,   
   HttpServletResponse response) {   
  
  String lan = (String)request.getSession().getAttribute("languageType");   
  if(lan==null)lan ="1";    
     
  String id=request.getParameter("id");   
           
  response.setContentType("text/xml;charset=UTF-8");   
  response.setHeader("Cache-Control","no-cache");   
        String xml_start="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";   
        xml_start+="<selects>";   
        String xml_end="</selects>";   
        String xml="<select><value>"+"0"+"</value><text>"+"select"+"</text></select>";   
        String m_lbbm_se="";   
        String m_lbmc_se="";   
        List LbfList=null;   
          
        LbfList=getList_product(lan,new Integer(id).intValue());   
          
        Iterator it=LbfList.iterator();   
        while(it.hasNext()){   
            Product cgsqd=(Product)it.next();   
            m_lbbm_se=cgsqd.getProId().toString();   
            m_lbmc_se=cgsqd.getProName();   
            xml +="<select><value>"+m_lbbm_se+"</value><text>"+m_lbmc_se+"</text></select>";   
        }   
        String last_xml=xml_start+xml+xml_end;   
        try {   
         System.out.println(last_xml);   
         response.getWriter().write(last_xml);   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        return null;   
  
  }   
    
    
private List getList(int lb,String lan,int parent_id){   
     
  String HQL = "from Type t where t.typLang= :lang  and t.leve=:leve and t.type.typId=:pid order by t.typOrder";   
  Query query = dao.getHQLQuery(HQL);   
  query.setString("lang",lan);   
  query.setInteger("leve",lb);   
  query.setInteger("pid",parent_id);   
     
  List types = query.list();   
  return types;   
}   
    
private List getList_product(String lan,int typeid){   
     
  String HQL = "from Product p where p.proLang= :lang   and p.type.typId=:typeid order by p.proOrder";   
  Query query = dao.getHQLQuery(HQL);   
  query.setString("lang",lan);   
  query.setInteger("typeid",typeid);   
     
  List lists = query.list();   
  return lists;   
分享到:
评论

相关推荐

    Struts2+Hiberante+ajax+Mysql 三级联动

    在三级联动中,Struts2可能被用来接收并处理前端的Ajax请求,根据不同的选择更新后续下拉框的数据。 **Hibernate** 是一个对象关系映射(ORM)框架,它允许开发者用面向对象的方式来操作数据库。在这个项目中,...

    Ajax+Struts+HIbernate实现省市联动

    在这个“Ajax+Struts+Hibernate实现省市联动”的项目中,我们将深入探讨这三个技术如何协同工作以实现高效的用户体验。 Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并...

    json实现三级联动下拉框---struts版(数据来自mysql数据库)

    在本项目中,"json实现三级联动下拉框---struts版(数据来自mysql数据库)"是利用JSON来处理省市县三级联动效果的示例,它通过Struts框架与MySQL数据库进行交互,动态地从数据库获取数据并更新到前端页面的下拉框中...

    ajax+jquery三级联动

    **Ajax+jQuery三级联动详解** 在Web开发中,三级联动是一种常见的交互设计,它通常用于实现下拉框之间的联动效果,比如省份、城市、区县的选择。在这个小demo中,我们将探讨如何使用Ajax和jQuery技术结合Struts2...

    三级联动的实例+struts2+hibernate3

    在IT行业中,"三级联动"通常指的是在一个应用中,三个或更多下拉列表框之间存在联动关系,即一个下拉框的选择会影响到下一个下拉框的数据加载。这种技术常见于地域选择、产品分类等场景,提供了良好的用户体验。在这...

    struts2二级联动下拉列表

    在给定的“struts2二级联动下拉列表”项目中,开发者利用Struts2、Hibernate和Spring这三大核心技术,创建了一个功能,使得用户在网页上可以选择省份和城市,这两个下拉列表会进行联动,即选择省份后,城市下拉列表...

    漂亮的Extjs+struts2实现联动下拉

    联动下拉框是一种常见的交互设计,常见于需要根据前一个选择项动态加载后一个选择项的场景,例如省份和城市的选择。在ExtJS中,我们可以使用ComboBox组件来实现这个功能。ComboBox允许我们设置远程数据源,通过AJAX...

    struts实现下拉框多级联动

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

    Ajax实现的三级联动下拉菜单

    struts2+jsp+json+javascript实现的三级下拉菜单,没有service和dao层,数据是虚拟的。需要的欢迎下载。项目直接导入myeclipse就可以使用。访问路径localhost:8080/ajax_day02_hw/proviencecityarea.jsp

    ajax,struts2,json实现省市区三级联动源码含全国省市区数据库

    “ajax,struts2,json实现省市区三级联动源码含全国省市区数据库”这一标题揭示了这个压缩包包含的是一项使用AJAX、Struts2和JSON技术来实现的省市区三级联动功能的源代码。这项技术常用于web应用中,允许用户在选择...

    ajax+json实现多级联动菜单

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

    struts2 ajax实现的二级联动

    在Struts2框架中,我们可以利用Ajax来实现二级联动效果,即在一个下拉框的选择改变时,通过Ajax请求动态地更新另一个下拉框的内容。 首先,我们需要了解Struts2的Action类,它是处理用户请求的核心。在实现二级联动...

    ajax+jQuery+ssh+oracle级联实例

    在这个实例中,Ajax负责在用户交互时发送请求到服务器,获取或提交数据,实现级联效果,例如下拉框的联动选择。 jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画设计和Ajax交互。jQuery的...

    ssh2+extCombobox联动动态下拉框

    在IT行业中,SSH2(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,用于构建企业级应用程序。而ExtJS的ComboBox是一个功能强大的组件,它提供了类似下拉列表的功能,用户可以选择一个或多个值。当...

    struts2二级联动实现

    在本实例中,我们将探讨如何使用Struts2框架中的标签来实现二级联动,具体以省市联动为例。 首先,我们需要了解Struts2框架的基础架构。Struts2的核心是Action类,它负责处理用户的请求,并通过Result返回相应的...

    Struts二级联动+MySQL连接池使用(代码)

    在Web应用中,一级联动是指一个下拉框的选择会直接影响另一个下拉框的内容,二级联动则是在一级联动的基础上,第二个下拉框的选择又会触发第三个或更多下拉框的更新。这种联动方式常见于地区选择、商品分类等场景。...

    strus2+oracle三级联动菜单

    在本实例中,“struts2+oracle三级联动菜单”是使用Struts2框架实现的一个功能,它涉及数据库(Oracle)的交互以及前端用户界面的动态更新。联动菜单,又称为级联下拉框,是指在一个下拉菜单的选择会影响到另一个或...

    web小项目:省市区三级联动(struts2+json)

    总的来说,这个"web小项目:省市区三级联动(struts2+json)"是一个典型的前后端交互案例,展示了如何利用Struts2处理业务逻辑,通过JSON进行数据交换,以及JavaScript如何动态更新页面内容,实现用户友好的交互体验...

    struts2+hibernate+spring实现的二级联动下拉列表.zip

    本项目"struts2+hibernate+spring实现的二级联动下拉列表"展示了如何将这三个框架整合起来,实现一个功能:在用户界面上展示两个下拉列表,当用户选择第一个下拉框的值时,第二个下拉框的内容会根据所选值动态更新。...

    Struts2+Spring+Hibernate+DWR实现的城市联动

    Struts2、Spring、Hibernate和DWR这四个技术在IT领域中是相当核心的组件,它们各自承担着不同的职责,并且常被组合使用以构建高效的企业级应用。在这个"Struts2+Spring+Hibernate+DWR实现的城市联动"项目中,我们将...

Global site tag (gtag.js) - Google Analytics