`
258197205
  • 浏览: 26078 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ajax实现二级联动下拉框

阅读更多

项目结构图:
option1.jpg

index.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"%>

<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <SCRIPT type="text/javascript">
        var req;
        window.onload=function(){
        }
        
        function Change_Select()
        {
            var zhi=document.getElementById('hero').value;
            var url="select?id="+escape(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=callback;
                req.send(null);
            }
        }
        
        function callback()
        {
            if(req.readyState == 4)
            {
                if(req.status == 200)
                {
                    parseMessage();
                }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('skill');
            select_root.options.length=0;
            
            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);
                try{
                    select_root.add(option);
                }catch(e){
                }
            }
            
            
        }
    </SCRIPT>
  </head>
  
  <body>
    <div align="center">
        <form name="form1" method="post" action="">
            <TABLE width="70%" boder="0" cellspacing="0">
                <TR>
                    <TD align="center">Double Select Box</TD>
                </TR>
                <TR>
                    <TD>
                        <SELECT name="hero" id="hero" onChange="Change_Select()">
                            <OPTION value="0">Unbounded</OPTION>
                            <OPTION value="1">D.K.</OPTION>
                            <OPTION value="2">NEC.</OPTION>
                            <OPTION value="3">BOSS</OPTION>
                        </SELECT>
                        <SELECT name="skill" id="skill">
                            <OPTION value="0">Unbounded</OPTION>
                        </SELECT>
                    </TD>
                </TR>
                <TR><td>&nbsp;</td></TR>
            </TABLE>
        </form>
    </div>
  </body>
</html>

 SelectServlet.java:

package com;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SelectServlet extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public SelectServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/xml");
        response.setHeader("Cache-Control","no-cache");
        
        String targetId=request.getParameter("id").toString();
        String xml_start="<selects>";
        String xml_end="</selects>";
        String xml="";
        if(targetId.equalsIgnoreCase("0")){
            xml="<select><value>0</value><text>Unbounded</text></select>";
        }else if(targetId.equalsIgnoreCase("1")){
            xml="<select><value>1</value><text>Mana Burn</text></select>";
            xml +="<select><value>2</value><text>Death Coil</text></select>";
            xml +="<select><value>3</value><text>Unholy Aura</text></select>";
            xml +="<select><value>4</value><text>Unholy Fire</text></select>";
        }else if(targetId.equalsIgnoreCase("2")){
            xml="<select><value>1</value><text>Corprxplode</text></select>";
            xml +="<select><value>2</value><text>Raise Dead</text></select>";
            xml +="<select><value>3</value><text>Brilliance Aura</text></select>";
            xml +="<select><value>4</value><text>Aim Aura</text></select>";
        }else{
            xml="<select><value>1</value><text>Rain of Chaos</text></select>";
            xml +="<select><value>2</value><text>Finger of Death</text></select>";
            xml +="<select><value>3</value><text>Bash</text></select>";
            xml +="<select><value>4</value><text>Summon Doom</text></select>";
        }
        String last_xml=xml_start+xml+xml_end;
        response.getWriter().write(last_xml);
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doGet(request,response);
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occure
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

 Web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>SelectServlet</servlet-name>
    <servlet-class>com.SelectServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>SelectServlet</servlet-name>
    <url-pattern>/select</url-pattern>
  </servlet-mapping>
    
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
 

 

分享到:
评论

相关推荐

    asp二级联动下拉框,三级联动下拉框

    二级联动下拉框是指两个下拉框之间存在依赖关系,当用户在第一个下拉框中做出选择时,第二个下拉框的内容会根据选择进行更新。这种功能通常通过JavaScript或AJAX与服务器进行交互来实现。 1. **HTML结构**:首先,...

    mvc3二级联动下拉框

    5. Ajax:ASP.NET MVC支持Ajax操作,使用Ajax.BeginForm或jQuery的$.ajax方法,可以实现无刷新更新页面部分内容,这对于二级联动下拉框的实时更新至关重要。 6. 数据绑定:在ASP.NET MVC中,可以使用MVVM(Model-...

    ajax++jsp二级联动下拉框,无刷新分页

    - `51CTO下载-ajax++jsp二级联动下拉框.txt`: 这个文本文件可能提供了实现JSP与Ajax结合的二级联动下拉框的代码示例或步骤说明。 - `51CTO下载-ajax实现无刷新查询.txt`: 文件内容可能涉及如何使用Ajax实现无刷新...

    Ajax实现二级/三级联动下拉框---servlet版

    在Web开发中,二级或三级联动下拉框是一种常见的交互设计,主要用于展示层次关系的数据,如省份-城市-区县的区域选择。本教程将详细讲解如何使用Ajax和Servlet技术来实现这一功能。 首先,我们需要了解Ajax...

    Jquery各种插件和JQuery Ajax三级联动地区下拉框 & 非Ajax实现三级联动

    在我们的案例中,可能会有一个插件专门处理三级联动下拉框的逻辑。 **二、AJAX技术** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。在我们的场景中,当用户...

    Ajax 无限级 联动下拉框

    本文将深入探讨如何利用Ajax实现无限级联动下拉框的功能。 一、Ajax基础概念 Ajax的核心是通过JavaScript创建XMLHttpRequest对象,它允许在后台与服务器进行异步数据交换。JavaScript调用XMLHttpRequest对象的open...

    二级联动下拉框

    在网页设计和开发中,"二级联动下拉框"是一种常见的交互元素,它通常用于实现多级选择或者关联数据的筛选。例如,在选择省份时,第一个下拉框会选择省份,当选择一个省份后,第二个下拉框会动态加载并显示该省份的...

    AJAX二级下拉框联动

    在网页开发中,AJAX(Asynchronous JavaScript and XML)二级下拉框联动是一种常见的交互设计,用于提升用户体验,尤其在处理...通过学习和实践这个案例,开发者可以更好地理解和掌握AJAX二级下拉框联动的实现方法。

    AJAX版省市区三级联动下拉框

    在IT领域,"AJAX版省市区三级联动下拉框"是一种常见的前端交互设计,尤其在网站表单中,用于用户选择地理位置时。这个技术基于AJAX(Asynchronous JavaScript and XML),它允许网页在不刷新整个页面的情况下与...

    layui下拉框二级数据联动 fzzx.zip

    在提供的`fzzx.zip`压缩包中,包含了一个名为`a.html`的文件,这个文件很可能是用来展示如何实现layui下拉框二级联动的示例代码。打开这个HTML文件,我们可以看到一个包含两个下拉框的页面,第一个下拉框(一级)...

    smarty ajax 下拉框二级联动

    Smarty + Ajax 下拉菜单二级联动: 1. 建立数据库ajaxtest (使用utf8) 2. 进行conn.php 修改root密码 3. 导入表 product.sql --- 主产品 4. 导入表 producttest.sql -- 二级产品 弄好后运行:...

    ajax 实现二级下拉框,地址联动,serverlet,java,xmlHttp

    在这个特定的场景中,我们讨论的是如何使用Ajax实现二级下拉框的联动,以及涉及到的技术如Servlet、Java和XMLHttp。 首先,二级下拉框联动通常用于地理信息的选择,例如省份选择后,城市下拉框自动更新对应省份的...

    市区二级联动下拉框

    在网页开发中,"市区二级联动下拉框"是一个常见的功能需求,特别是在用户需要选择地址时,例如填写收货地址。这种设计允许用户先选择省份(一级),然后根据选择的省份加载对应的市(二级)列表,以此提高用户体验,...

    三级联动 下拉框

    在网页设计和开发中,"三级联动下拉框"是一种常见的交互元素,它通常用于实现多级关联选择,比如省份-城市-区县的选择。这种功能可以极大地提高用户体验,尤其是在处理大量分类信息时。下面我们将深入探讨这个话题,...

    ajax实现二级下拉框和用户名校验

    【Ajax实现二级下拉框与用户名校验】 Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。在本工程文件中,主要涉及到两个关键应用场景:二级下拉框的联动效果和...

    Ajax实现下拉框三级联动

    **Ajax实现下拉框三级联动**是Web开发中一种常见的交互设计,主要用于提高用户体验,让用户在选择一项数据时,能够即时地看到与之关联的下级数据,而无需等待整个页面重新加载。这种技术通常应用于地址选择、产品...

    下拉框二级联动

    本文将详细讨论“下拉框二级联动”这一主题,以及如何利用AJAX和JSON技术来实现这一功能。 首先,我们要理解什么是二级联动。在多级选择的场景下,二级联动指的是当用户在一个下拉框(Dropdown)中做出选择时,第二...

    Asp+xml+数据库 - 四级联动下拉框

    总结来说,"Asp+xml+数据库 - 四级联动下拉框"的实现涉及ASP服务器端脚本处理数据,XML作为数据交换格式,以及数据库来存储和检索菜单信息。通过合理的编程和交互设计,四级联动下拉框能有效地帮助用户导航复杂的...

Global site tag (gtag.js) - Google Analytics