| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
AJAX制作目录树

作者:未知    文章来源:网络    点击数:    更新时间:2007-6-22
   
作者:唐广勇
近来因工需要用Ajax实现一棵目录树,在网上找了许久代码都不是很满意,大多太复杂不易看懂,因此决定自己写了一个。考虑到和我有同样需求的朋友不少,现贴出程序代码和分析,仅供大家参考。
考虑到仅是个例子,所以数据库设计和程序设计做了尽量简化,大家在理解之后可以加以润色以便实用。
数据库
数据库使用ACCESS,数据表只有一张,即t_column。字段如下:
字段名称 字段类型 说明
c_Id 自动编号 ID,主键
c_ParentId 数字 父ID,默认0
c_Name 文本(50) 栏目名称
c_Depth 数字 所在层级,默认0
c_ChildNum 数字 子栏目数,默认0
 
 
 
Javascript部分
var xmlHttp; //定义一个全局变量
//取得页面对象
//id,层id
function GetId(id)
{
return document.getElementById(id);
}
说明:这个大家应该都明白了,就是获得页面指定层的ID,因为用的比较多,所以单独写成了函数以便调用。
//主函数,用于层和图标的样式及执行AJAX
//id,层id
//rid,数据在表中的id
//pid,图id
function DivDisplay(id,rid,pid)
{
if (GetId(id).style.display=='')
{
GetId(id).style.display='none';
GetId(pid).src = 'images/closed.gif';
}
else
{
GetId(id).style.display='';
GetId(pid).src = 'images/opened.gif';
if (GetId(id).innerHTML=='')
{
ShowChild(id,rid);
}
}
}
说明:此函数是当栏目前的图标被点击时(onclick)的处理函数。当其子栏目处于显示状态时,单击后将子栏目隐藏,并将前面的图标变为关闭 ;当其子栏目处于隐藏状态时,单击后首先判断子栏目是否已经加载到页面,如果没有则通过ajax方法加载,然后显示,如果已经加载,则直接显示,同时将前面的图标变为打开
 
//创建XMLHttpRequest对象
function CreateXMLHttpRequest()
{
if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
xmlHttp = new XMLHttpRequest();
}
}
说明:此函数是创建XMLHttpRequest对象,如果是IE,则创建ActiveXObject,如果是FireFox等其它浏览器则直接创建XMLHttpRequest()。
//Ajax处理函数
//id,层id
//rid,数据在表中的id
function ShowChild(id,rid)
{
CreateXMLHttpRequest();
if(xmlHttp)
{
xmlHttp.open('POST','columnAdmin.asp',true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var SendData = 'id='+rid;
xmlHttp.send(SendData);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
GetId(id).innerHTML = xmlHttp.responseText;
}
else
{
GetId(id).innerHTML='出错:'+xmlHttp.statusText;
}
}
else
{
GetId(id).innerHTML="正在提交数据...";
}
}
}
else
{
GetId(id).innerHTML='抱歉,您的浏览器不支持XMLHttpRequest,请使用IE6以上版本!';
}
}

[1] [2] 下一页


  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章