默认查出一级分类的第一条数据,和一级分类第一条对应的二级分类条目,当选择一级分类的其他条目时,通过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>
<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;
}
分享到:
相关推荐
在三级级联中,每当用户在一级或二级下拉菜单中做出选择时,会通过ajax发送异步请求到服务器,获取与当前选择对应的三级下拉菜单的选项数据。 具体实现过程如下: 1. **初始化界面**:在`KnowledgeKinds.jsp`中,...
本主题将深入探讨如何利用jQuery AJAX实现动态级联效果,即二级联动下拉菜单,这种功能通常用于多级分类选择或者地区选择等场景。 首先,让我们了解什么是jQuery和AJAX。jQuery是一个强大的JavaScript库,简化了...
在网页开发中,"select级联二级菜单"是一种常见的交互设计,主要用于呈现具有层次结构的数据。这种设计使得用户可以通过选择一级菜单项来显示相应的二级菜单,进而进行更精确的选择。在给定的资源中,我们可以推测这...
本主题聚焦于“Jquery实现ajax二级级联查询”,这是一个常见的前端交互设计,常见于下拉菜单联动,例如省份选择后自动更新城市选择。在这个场景中,我们通常会利用服务器端(如JSP或Servlet)动态生成XML文件,因为...
当用户在一级菜单(省份)中选择一个选项时,通过Ajax向服务器发送请求,服务器则根据请求返回相应的二级菜单(城市)数据。同样,当用户在二级菜单中做出选择时,会再次触发Ajax请求,获取三级菜单(区县)的数据。...
2. Ajax:使用JavaScript异步更新二级菜单,提高交互性。 3. HTML和JavaScript:构建前端用户界面,监听用户交互,发起Ajax请求。 4. "tools.jsp":创建XMLHttpRequest对象的兼容性层,确保跨浏览器的Ajax功能。 这...
例如,当用户在第一级下拉菜单中做出选择后,需要通过监听事件来触发第二级下拉菜单的更新,并进一步触发第三级下拉菜单的更新,从而实现真正的级联效果。 ### 4. 应用场景 3级级联功能广泛应用于各类需要多级分类...
"name": "二级菜单1", "children": [ { "name": "三级菜单1", "children": [ { "name": "四级菜单1", "url": "#" }, { "name": "四级菜单2", "url": "#" } ] }, { "name": "三级菜单2", "children...
Ajax(Asynchronous JavaScript and XML)技术的引入,使得级联菜单不再需要刷新整个页面就能动态地加载和更新数据,提高了用户体验。本文将深入探讨如何使用Ajax来实现级联菜单,并结合数据库获取数据。 首先,...
在级联菜单中,当用户选择一级菜单时,AJAX会向服务器发送请求,获取与该一级菜单相关的二级菜单数据,并在客户端动态渲染,提供即时反馈。 再者,MySQL是一款流行的开源关系型数据库管理系统,用于存储和管理应用...
在Java Web开发中,二级级联下拉菜单是一种常见的用户界面元素,用于提供层次结构的选择。这个场景中,我们利用数据库存储数据,并通过后端处理逻辑动态生成这些下拉菜单。下面将详细介绍如何使用MySQL数据库来实现...
首先,需要构建HTML结构,其中包含两个下拉菜单,一个用于显示一级菜单(部门),另一个用于显示根据选中的部门动态获取的二级菜单(子部门)。 ```html <!-- 一级部门列表 --> <option value="0">---请选择--...
6. **jQuery动态更新**:前端接收到响应后,使用jQuery更新二级菜单,展示子级区域(如城市)。 文件名"街道.jpg"和"区县.jpg"可能代表示例中的图像资源,用于美化界面或指示特定区域。"Menu"可能是包含JavaScript...
在级联菜单的上下文中,当用户在一级菜单中选择一个选项时,Ajax会向服务器请求相应的二级菜单数据,然后在前端动态渲染出二级菜单,而无需刷新整个页面。 要实现这个功能,我们需要以下几个步骤: 1. **HTML结构*...
在这个场景中,我们讨论的是使用jQuery库来实现JSON格式数据的二级级联下拉菜单。这种功能常见于多级分类选择、地区选择等,它可以提供更流畅、更直观的用户体验。 jQuery是一个轻量级、高性能的JavaScript库,它...
引用场景: 国家省市级联菜单、任何二级级联菜单、三级菜单、四级菜单、五.... 使用范例:详细参阅District.Selector.js文件 以国家地理信息为例: $(function () { var District1 = new District("userDistrict",{...
jQuery城市级联插件是一种基于JavaScript库jQuery实现的交互式选择器,主要用于处理地理位置数据,如省份、城市、区县的三级联动效果。在网页表单中,这种插件能够帮助用户逐步选择地理位置,提高用户体验并减少输入...
在Java Web开发中,二级联动下拉列表是一种常见的交互功能,通常用于地区选择、类别分类等场景。...通过以上步骤和注意事项,我们就可以在Java Web应用中成功实现Ajax驱动的二级联动下拉列表,提升用户的交互体验。
在本文中,我们将深入探讨如何使用Ajax技术来实现下拉列表的级联效果,这是一个常见的交互功能,特别是在数据录入和筛选场景中。我们将基于EJB(Enterprise JavaBeans)技术连接数据库,以动态加载和更新下拉列表...
本教程将聚焦于一个特定的应用场景——利用jQuery制作简单二级联动效果。这种效果通常应用于下拉菜单或者选择框,当用户在一个选择框中选择一个选项时,另一个选择框会根据用户的选择动态更新其内容。 在...