jsp+javascript+数据库实现树形目录实例源码。以实现商品分类为例,假设商品对应着大分类和小分类,现在要达到的效果如下:单击一级目录(大分类),则显示对应的所有二级目录(小分类)信息。
步骤和知识点:
1)
<%
ExecuteDb execute=new ExecuteDb();//ExecuteDb是一个与数据库操作相关的类
ResultSet rs=execute.executeQuery(“select ID,TypeName from tb_superType group by ID,TypeName order by TypeName desc”);
%>
……//html页面布局
<%
//获得大分类的信息
int superID=0;
String supertype=””;
int m=1;
while (rs.next()){
superID=rs.getInt(1);
supertype=rs.getString(2);
//查询每个大分类下的小分类信息
ResultSet rs_sub=execute.executeQuery(“select * from tb_subType where superType=”+superID);
int subID=0;
String subtype=““;
//获取小分类的记录数
rs_sub.last();
int sub_rc=rs_sub.getRow();
rs_sub.first();
%>
……//html页面布局
<%
//小分类不存在的情况处理
if(sub_rc<=0)
{%>
<img src=”……” width=”38” height=”16” border=”0”/><%=supertype%>
<%}%>//if
<a href=”Javascript:ShowTR(img<%=m%>,OpenRep<%=m%>)”>
<img src=”……” border=”0” alt=”展开” id=”img<%=m%>”></a>
<a href=”Javascript:ShowTR(img<%=m%>,OpenRep<%=m%>)”><%=supertype%>
</a>
<%}%>//else
……
<%
if(sub_rc>0){%>
<tr id=”OpenRep<%=m%>” style=”display:none;”>//设置为隐藏状态
<td>
<%
do{
%><%=subtype%><br>//此处应该重新布局,使得页面布局更加合理
<%
m++;//m的值增1,此处一定不要忘记
while(rs_sub.next());
%>
</td>
<%}%>//if(sub_rc>0)
2)
function ShowTR(objImg,objTr){
ps:
display属性:指定一个对象是否被隐藏,适用范围包括标签body、table、input、div、span、img、textarea等。支持继承性,也就是说如果table被隐藏,则其包含所有的行和单元格都被隐藏。可以设置为none(隐藏)、block(把元素当成块元素显示)、inline(把元素当成内联元素显示)、list-item(把元素当成列表项显示。例如<tr style=”display:none”>表示将行隐藏