jsp动态显示数据库级联信息

单页面动态生成数据的处理方法


<%@ 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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值