单页面动态生成数据的处理方法
<%@ page language="java" import="java.util.*,com.xaccp.entity.*,com.xaccp.dao.*" pageEncoding="GBK"%>
<html>
<head>
<%
//通过服务器动态产生javascript代码(客户端脚本代码)
StringBuffer sb = new StringBuffer(); //存储大类型的数组
StringBuffer sbm = new StringBuffer(); //存储子类型的数组
sb.append("<SCRIPT LANGUAGE = 'JavaScript'>");
sb.append("\n var big = new Array();");
sb.append("\n var small = new Array();");
TypeListDao typeDao=new TypeListDao();
Map mapType=typeDao.selectMap();
List typeList=(List)mapType.get(new Integer(0)); //获得存储父类别的集合
for (int i = 0; i < typeList.size(); i++) {
TypeList mainType=(TypeList) typeList.get(i);
sb.append(" \n big["+mainType.getTypeID()+"]=['"+mainType.getTypeName()+"'];");
//out.println(mainType.getTypeID()+":"+ mainType.getTypeName());
//根据父类别的类别细信息来获得相应父类别下的子类别集合
List sonListType=(List)mapType.get(new Integer(mainType.getTypeID()));
if (sonListType!=null) {//判断:如果相应的父类型下有子类型再去循环遍历。以免出现空指定异常
sb.append("\n small["+mainType.getTypeID()+"]=[");
for (int j = 0; j < sonListType.size(); j++) {
TypeList sonType=(TypeList)sonListType.get(j);
sb.append("'"+sonType.getTypeID()+"-"+sonType.getTypeName()+"'");
if(j<sonListType.size()-1)
sb.append(",");
}
sb.append("];\n");
}
}
sb.append("</SCRIPT>\n");
%>
<%=sb.toString() %>
<script type="text/javascript">
//为类别下拉框添加选项
function initBig()
{
var selBig = document.getElementById("selBig");
selBig.options.add(new Option("==请选择大类=="),0);
for(i in big)
{
var op = new Option(big[i],i);
selBig.options.add(op);
}
}
//为栏目下拉框添加选项
function fillSmall(bId)
{
document.getElementById("selSmall").options.length=0;//清空原下拉列表中的项
if(small.length>bId)
{
var selSmall = document.getElementById("selSmall");
for(var i =0;i<small[bId].length;i++)
{
var name =small[bId][i].substring(small[bId][i].indexOf('-')+1);
var id =small[bId][i].substring(0,small[bId][i].indexOf('-'))
selSmall.options.add(new Option(name,id));
}
}
else
{
//提示当前类别中无子栏目,
if(confirm("请添加当前大类中的小类 !\r\n要添加吗?"))
{
//location.href="#";在这里进行连接,链接到添加类别页面
}
}
}
</script>
</head>
<body onLoad="initBig()">
<select id="selBig" onChange="fillSmall(this.value)">
</select>
<select id="selSmall">
</select>
</body>
</html>
分享到:
相关推荐
JSP级联效果JSP级联效果JSP级联效果JSP级联效果JSP级联效果JSP级联效果JSP级联效果JSP级联效果JSP级联效果JSP级联效果
jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单
struts2 spring jpa操作数据库 级联数据 hibernate
省市区街道级联地址数据库,方便大家做地址相关应用。。
不同级别的菜单内容分别存储在数据库里,然后通过连接数据库实现级联菜单的功能
java/jsp 实现二级级联菜单 可以 从数据库里取出数据进行级联
使用js+jsp标签实现页面级联菜单,可以扩展成多级
asp读取access数据库数据,在html页面动态生成多级级联的下拉框,摆脱静态级联下拉框数据变更烦恼。
全国城市级联数据库 很齐全 到区去 值得拥有
使用ajax+struts2.0+jsp做的一个多下拉列表级联
jsp级联菜单源代码 保证最简单的代码, 只要见过、研究过jsp就能看的懂。
二级级联带数据库
利用51单片机实现实现数码管的动态显示,程序可以根据自己的环境进行修改
级联菜单 动态级联菜单 可能动态取数据
希望对大家会有所帮助
74hc595级联动态显示LED,多个led随你想要
asp简单的select级联菜单带数据库
jsp + servlet 级联菜单 简单适用,非常适合新手!
在使用JSP JavaScript过程中有很多的技巧与实现,那么如何构建二级级联下拉菜单呢,本文将会向你做一个源码上的介绍。
最新写的,以供分享...........................................