`

jQuery ajax级联二级菜单(转)

阅读更多
默认查出一级分类的第一条数据,和一级分类第一条对应的二级分类条目,当选择一级分类的其他条目时,通过ajax查询出数据库中对应的二级分类条目,返回json格式的数据,并显示在二级分类的下拉列表中。

编程实现:

前端页面jsp:
<form method="post" modelAttribute="_pro" name="form1" id="form1" action="${ctx}/product-manage/add-product">
      <table width="100%" border="1" align="center" cellpadding="6" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#F7F7F7">
        <tr>
          <td width="15%" bgcolor="#F7F7F7"><div align="center">产品分类</div></td>
          <td bgcolor="#F7F7F7">
          <select name="pid" id="pid" onchange="getData()">
          <c:forEach var="data" items="${clist}">
          <option value="${data.id}">${data.name}</option>
          </c:forEach>
          </select>
          &nbsp;&nbsp;
          <select name="categoryId" id="categoryId">
          <c:forEach var="data" items="${slist}">
          <option value="${data.id}">${data.name}</option>
          </c:forEach>
          </select>
          </td>
        </tr>
</form>


jsp中的ajax的js部分:
<script src="${ctx}/js/jquery-1.7.1.min.js"></script>
    function getData()
    {
		var pid = $("#pid").val();
	 	$.ajax({        
	         url:"${ctx}/product-manage/sub-category?"+Math.random(),
	         data:{pid : pid},
	         type : "post",  
		 	 cache : false,  
		 	 dataType : "json", 
	         error:function(){
	         	alert("error occured!!!");
	         },
	         success:function(data){
	         if(data!="0"){
				var categoryId = document.getElementById('categoryId');
				//清空数组
				categoryId.length = 0;
				for(var i=0;i<data.length;i++){
					 var xValue=data[i].id;  
                     var xText=data[i].name;  
                     var option=new Option(xText,xValue);  
                     categoryId.add(option);  
				}
	          }else{
	          	 var categoryId = document.getElementById('categoryId');
	          	 categoryId.length = 0;
		      }
	       }
	   });
	}




后端的json处理代码:

/**
	 * 得到产品种类对应的子种类  : json数据
	 * @throws IOException
	 */
	@SuppressWarnings("unchecked")
	@RequestMapping(value="sub-category")
	public String getSubCategory(HttpServletRequest request, HttpServletResponse response) throws IOException{
		response.setContentType("text/xml;charset=UTF-8");  
        
	    PrintWriter out = null;  
	    try {
	        out = response.getWriter();  
	    } catch (IOException e) {  
	        e.printStackTrace();  
	    }
	    String pid = request.getParameter("pid");
	    
	    String sql = "select id,name from product_category where pid=?";
		List<ProductCategory> clist = (List<ProductCategory>) DBHandler.queryBeanList(sql, ProductCategory.class, pid);
		
		JSONArray array = new JSONArray();  
        JSONObject member = null;  
        try {
	        for (ProductCategory p:clist) {  
	            member = new JSONObject();  
				member.put("name", p.getName());
	            member.put("id", p.getId());  
	            array.put(member);
	        }
        } catch (JSONException e) {
			e.printStackTrace();
		}
        
        out.print(array.toString());
		
	    return null;
	}
分享到:
评论

相关推荐

    jQuery+ajax实现三级级联

    在三级级联中,每当用户在一级或二级下拉菜单中做出选择时,会通过ajax发送异步请求到服务器,获取与当前选择对应的三级下拉菜单的选项数据。 具体实现过程如下: 1. **初始化界面**:在`KnowledgeKinds.jsp`中,...

    Jquery Ajax 动态级联

    本主题将深入探讨如何利用jQuery AJAX实现动态级联效果,即二级联动下拉菜单,这种功能通常用于多级分类选择或者地区选择等场景。 首先,让我们了解什么是jQuery和AJAX。jQuery是一个强大的JavaScript库,简化了...

    select级联二级菜单

    在网页开发中,"select级联二级菜单"是一种常见的交互设计,主要用于呈现具有层次结构的数据。这种设计使得用户可以通过选择一级菜单项来显示相应的二级菜单,进而进行更精确的选择。在给定的资源中,我们可以推测这...

    Jquery实现ajax二级级联查询

    本主题聚焦于“Jquery实现ajax二级级联查询”,这是一个常见的前端交互设计,常见于下拉菜单联动,例如省份选择后自动更新城市选择。在这个场景中,我们通常会利用服务器端(如JSP或Servlet)动态生成XML文件,因为...

    Ajax (jQuery) 全国城市三级级联菜单插件

    当用户在一级菜单(省份)中选择一个选项时,通过Ajax向服务器发送请求,服务器则根据请求返回相应的二级菜单(城市)数据。同样,当用户在二级菜单中做出选择时,会再次触发Ajax请求,获取三级菜单(区县)的数据。...

    java实现Ajax级联菜单

    2. Ajax:使用JavaScript异步更新二级菜单,提高交互性。 3. HTML和JavaScript:构建前端用户界面,监听用户交互,发起Ajax请求。 4. "tools.jsp":创建XMLHttpRequest对象的兼容性层,确保跨浏览器的Ajax功能。 这...

    jquery3级级联

    例如,当用户在第一级下拉菜单中做出选择后,需要通过监听事件来触发第二级下拉菜单的更新,并进一步触发第三级下拉菜单的更新,从而实现真正的级联效果。 ### 4. 应用场景 3级级联功能广泛应用于各类需要多级分类...

    4级级联菜单JQUERY+JSON版

    "name": "二级菜单1", "children": [ { "name": "三级菜单1", "children": [ { "name": "四级菜单1", "url": "#" }, { "name": "四级菜单2", "url": "#" } ] }, { "name": "三级菜单2", "children...

    ajax实现级联菜单的类子

    Ajax(Asynchronous JavaScript and XML)技术的引入,使得级联菜单不再需要刷新整个页面就能动态地加载和更新数据,提高了用户体验。本文将深入探讨如何使用Ajax来实现级联菜单,并结合数据库获取数据。 首先,...

    JSP+AJAX+MYSQL实现二级级联菜单

    在级联菜单中,当用户选择一级菜单时,AJAX会向服务器发送请求,获取与该一级菜单相关的二级菜单数据,并在客户端动态渲染,提供即时反馈。 再者,MySQL是一款流行的开源关系型数据库管理系统,用于存储和管理应用...

    java web下开发二级级联下拉菜单(数据库实现的)

    在Java Web开发中,二级级联下拉菜单是一种常见的用户界面元素,用于提供层次结构的选择。这个场景中,我们利用数据库存储数据,并通过后端处理逻辑动态生成这些下拉菜单。下面将详细介绍如何使用MySQL数据库来实现...

    jquery+ajax+jsp+servlet实现二级级联菜单

    首先,需要构建HTML结构,其中包含两个下拉菜单,一个用于显示一级菜单(部门),另一个用于显示根据选中的部门动态获取的二级菜单(子部门)。 ```html &lt;!-- 一级部门列表 --&gt; &lt;option value="0"&gt;---请选择--...

    二级级联菜单

    6. **jQuery动态更新**:前端接收到响应后,使用jQuery更新二级菜单,展示子级区域(如城市)。 文件名"街道.jpg"和"区县.jpg"可能代表示例中的图像资源,用于美化界面或指示特定区域。"Menu"可能是包含JavaScript...

    ajax二级联动菜单

    在级联菜单的上下文中,当用户在一级菜单中选择一个选项时,Ajax会向服务器请求相应的二级菜单数据,然后在前端动态渲染出二级菜单,而无需刷新整个页面。 要实现这个功能,我们需要以下几个步骤: 1. **HTML结构*...

    级联 jquery json格式 二级级联

    在这个场景中,我们讨论的是使用jQuery库来实现JSON格式数据的二级级联下拉菜单。这种功能常见于多级分类选择、地区选择等,它可以提供更流畅、更直观的用户体验。 jQuery是一个轻量级、高性能的JavaScript库,它...

    基于ajax、jquery 通用无限级联菜单

    引用场景: 国家省市级联菜单、任何二级级联菜单、三级菜单、四级菜单、五.... 使用范例:详细参阅District.Selector.js文件 以国家地理信息为例: $(function () { var District1 = new District("userDistrict",{...

    jQuery城市级联插件[处市县三级]

    jQuery城市级联插件是一种基于JavaScript库jQuery实现的交互式选择器,主要用于处理地理位置数据,如省份、城市、区县的三级联动效果。在网页表单中,这种插件能够帮助用户逐步选择地理位置,提高用户体验并减少输入...

    Ajax实现java web 中下拉列表二级联动

    在Java Web开发中,二级联动下拉列表是一种常见的交互功能,通常用于地区选择、类别分类等场景。...通过以上步骤和注意事项,我们就可以在Java Web应用中成功实现Ajax驱动的二级联动下拉列表,提升用户的交互体验。

    ajax实现下拉列表级联

    在本文中,我们将深入探讨如何使用Ajax技术来实现下拉列表的级联效果,这是一个常见的交互功能,特别是在数据录入和筛选场景中。我们将基于EJB(Enterprise JavaBeans)技术连接数据库,以动态加载和更新下拉列表...

    利用JQuery制作简单二级联动

    本教程将聚焦于一个特定的应用场景——利用jQuery制作简单二级联动效果。这种效果通常应用于下拉菜单或者选择框,当用户在一个选择框中选择一个选项时,另一个选择框会根据用户的选择动态更新其内容。 在...

Global site tag (gtag.js) - Google Analytics