`
liujiawinds
  • 浏览: 136302 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

联动下拉框demo

 
阅读更多

今天课上老师讲了一个联动下拉框的demo,

用的是jquery,没连接数据库,是用的JSON数组

研究了一晚上,貌似搞懂了,现在传上源码与jquery入门新手分享

servlet类

 

package com.newtest;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

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

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.newtest.vo.Province;

public class ProvinceAction extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public ProvinceAction() {
		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 {
		String oper=request.getParameter("oper");
		if(oper==null){
			List<Province> list=new ArrayList<Province>();
			list.add(new Province(1,"四川"));
			list.add(new Province(2,"广东"));
			list.add(new Province(3, "湖南"));
			request.setAttribute("provinceList", list);
			request.getRequestDispatcher("city_pro.jsp").forward(request, response);
		}else{
			response.setContentType("text/html;charset=gbk");
			String id=request.getParameter("provinceId");
			System.out.println(id);
			if("1".equals(id)){
				JSONObject json=new JSONObject();
				json.put("id",1);
				json.put("name","成都");
				
				JSONObject json2=new JSONObject();
				json2.put("id",2);
				json2.put("name","遂宁");
				
				JSONObject json3=new JSONObject();
				json3.put("id",3);
				json3.put("name","乐山");
				
				JSONArray ja = new JSONArray();
				ja.add(json);
				ja.add(json2);
				ja.add(json3);
				
				response.getWriter().println(ja.toString());
		}
			if("2".equals(id)){
				JSONObject json=new JSONObject();
				json.put("id",1);
				json.put("name","广州");
				
				JSONObject json2=new JSONObject();
				json2.put("id",2);
				json2.put("name","顺德");
				
				JSONObject json3=new JSONObject();
				json3.put("id",3);
				json3.put("name","佛山");
				
				JSONArray ja = new JSONArray();
				ja.add(json);
				ja.add(json2);
				ja.add(json3);
				
				response.getWriter().println(ja.toString());
		}
			if("3".equals(id)){
				JSONObject json=new JSONObject();
				json.put("id",1);
				json.put("name","长沙");
				
				JSONObject json2=new JSONObject();
				json2.put("id",2);
				json2.put("name","湘潭");
				
				JSONObject json3=new JSONObject();
				json3.put("id",3);
				json3.put("name","娄底");
				
				JSONArray ja = new JSONArray();
				ja.add(json);
				ja.add(json2);
				ja.add(json3);
				
				response.getWriter().println(ja.toString());
		}
		}
	}
	/**
	 * 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 occurs
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}

实体类

 package com.newtest.vo;

public class Province {
	private int id;
	private String name;
	
	
	public Province(int id, String name) {
		this.id=id;
		this.name=name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
}

 jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'MyJsp.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<script type="text/javascript" src="script/jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
	  function getCityById(obj){
	       
          var id = obj.value;
          $.ajax({
            
              url: '<%=path %>/Province',
              type:'post',
              data:{
                provinceId:id,
                oper:'get'
              },
              success:function(data){
                 var msg = eval('(' + data + ')');
                 var city = $("#city");
                 city[0].options.length = 1;
                 for(var i in msg){
                    var option = new Option(msg[i]['name'],msg[i]['id']);
                    city[0].add(option);
                 }
              }
          });
      }
	</script>
  </head>
  
  <body>
  
 
      <center>
        <h1>联动下拉框</h1>
         <select id="province" onchange="getCityById(this);">
         <option value="">--请选择省份--</option> 
           <c:forEach var="province" items="${requestScope.provinceList}">
               <option value="${province.id}">${province.name }</option>
           </c:forEach>
         </select> 
         <select id="city">
           <option value="">--请选择城市--</option>
         </select>
       </center>
   
  </body>
</html>

 

是从servlet类进入,如:http://localhost:8080/test_jquery/Province   (/Province是servlet配置的url-pattern)

分享到:
评论

相关推荐

    jQuery ajax 多级联动 下拉框 Demo

    ajax 实现 (全国,省,是,区....) N级联 Demo js: &lt;script type="text/javascript"&gt; $(function () { $.fn.CascadeSelect({ url: '/CascadeSelect/CascadeSelect.ashx', //返回Json数据的一般处理文件 idKey: ...

    winform 页面 下拉框 省市联动选择demo

    winform 页面 下拉框 省市联动选择 demo 小功能组件 选择省后,市选项就自动变为该省内的选项

    二级联动下拉框

    首先,`demo.html`是主展示页面,它包含了HTML结构、CSS样式以及JavaScript脚本,用于实现联动下拉框的功能。HTML部分可能包含两个`&lt;select&gt;`元素,分别代表一级和二级下拉框,每个`&lt;option&gt;`元素则表示具体的选项。...

    二级联动demo

    标题“二级联动demo”表明我们要实现的是一个具有两个级别(一级和二级)的下拉菜单,当用户在第一个下拉框(一级)中做出选择时,第二个下拉框(二级)的内容会相应地更新,展示与一级选择相关的选项。 描述中提到...

    实现省市联动的demo

    在IT行业中,省市联动是一种常见的前端交互功能,它主要用于用户选择省份时,自动更新下拉框中的城市选项,提供更加便捷的用户输入体验。这里我们关注的焦点是使用Jquery来实现这一功能。Jquery是一个高效、简洁且...

    世界地区三级联动demo(带完整国家地区信息)

    这样的设计便于在联动下拉框中按级查找和填充选项。 其次,前端开发中,这个demo可能会使用JavaScript库如jQuery或者现代框架如React、Vue.js来实现。这些库和框架提供了丰富的DOM操作和事件处理功能,使得动态加载...

    div模拟下拉框的Demo

    这个“div模拟下拉框的Demo”就是一个实例,它展示了如何使用HTML、CSS和JavaScript(可能是jQuery或其他库)来创建一个功能齐全且外观可定制的下拉选择组件。 首先,我们要理解原生的`&lt;select&gt;`元素的局限性。原生...

    最容易理解的二级联动-demo(javascript+ajax)

    在这个项目中,JavaScript可能被用来监听用户的输入事件,触发AJAX请求,以及处理服务器返回的数据,更新二级联动下拉框的内容。 在提供的压缩包文件“linkage”中,可能包含了整个二级联动的实现代码,包括HTML...

    三级联动demo

    在本例的"三级联动demo"中,我们讨论的是如何使用JavaScript和HTML来实现省市区的选择功能。 首先,HTML部分是构建用户界面的基础。你需要创建三个`&lt;select&gt;`元素,分别代表省、市、区。每个`&lt;select&gt;`元素都需要一...

    html 下拉列表联动展示数据Demo

    html 下拉列表 联动选择 展示数据Demo 类似可以实现地址选择

    LinkageSel Javascript 无限多级联动下拉菜单

    多级联动,支持Ajax动态获取数据并缓存数据,动态生成下级select菜单,设置动态生成"option"第一个条目作为提示项,自动选择唯一选项的菜单,设置回调函数在onChange事件触发时获取下拉菜单相关信息。 详细功能及...

    VUE世界城市四级联动下拉组件.rar

    这是一套VUE全家桶的Demo里面有数据来源,和JS代码,4级联动下拉组件,可以随意更改,可二次开发无限极联动。

    layui地址联动demo+sql

    在“layui地址联动demo”中,我们讨论的是一个典型的前端交互功能,即省市区级联选择。这种功能常见于需要用户输入详细地址的场景,如电子商务、物流配送等。联动指的是当用户在一级选择(如省份)中作出选择时,二...

    vue学习之mintui picker选择器实现省市二级联动示例

    本文介绍了vue学习之mintui picker选择器实现省市二级联动示例,分享给大家,具体如下: Mint UI 使用文档:https://mint-ui.github.io/docs/#/zh-cn2 Popup弹出框介绍:...

    淘宝网使用的省市区三级联动demo

    在这个“省市区三级联动demo”中,我们可以深入理解这一功能背后的实现原理和技术细节。 首先,“省市区三级联动”指的是在选择地址时,用户先选择省份,接着选择城市(地级市),最后选择区县,这三个选项之间存在...

    ASP.NET取代DataGrid的ListView强悍用法示例(动态增加行 下拉框联动)

    `ListViewDemo2.aspx.vb`文件则包含了后台代码,用于处理数据操作和事件响应,例如动态添加行的逻辑和下拉框联动的实现。 总结来说,ASP.NET的ListView控件提供了一种高效且灵活的方式来展示和操作数据,结合动态...

    前端 layui-fromSelects 下拉框多选,搜索

    在本主题中,我们主要探讨的是如何利用 Layui 实现一个功能完备的下拉框选择器,支持多选、搜索以及反选功能。 一、Layui Form Selects Layui 的 Form Selects 是一个强大的下拉选择组件,它不仅提供了基本的单选...

    多级联动demo

    本示例“多级联动demo”就是一个具体的实现案例,它提供了无限级联动的可能性,适用于各种需要展示层级关系的场景。 首先,我们要理解多级联动的基本原理。通常,多级联动是通过JavaScript或者Vue、React等前端框架...

    channel3.war

    jquery实现三级联动的下拉框demo,是一个war包,可以在tomcat中直接运行,也可以自己解压了查看源代码

    jQuery省市区三级联动插件

    三级联动是指在三个下拉列表中,当用户在一个下拉框中做出选择时,其他两个下拉框的内容会根据所选值动态更新。例如,在省市区三级联动中,选择一个省份后,市的选项会根据省份自动筛选,接着选择市后,区的选项也会...

Global site tag (gtag.js) - Google Analytics