发个绝对好用的目录树,自己写的
我向 MM 表白,按 MM 的要求给她时间考虑,正在等待她几天后的回复,大家祝福我呀!
追到了后我另有好东西送给大家哦 :D
JS 写的目录树
/*********************************** /
目录树代码 V1.21
.无限分类
.以"-"数目表示层数,清晰明了
.动态展开&收缩
天窗 http://www.faisun.com (55 这个没时间管它先暂时关站啦)
暖阳 faisun@sina.com
2004 年 11 月
/ **********************************/
演示地址(建议查看一下左边窗口的源文件):
http://www.gdclub.cn/demo/menutree/
下载地址:
http://www.gdclub.cn/demo/menutree/menutree.rar
问题点数:0、回复次数:82Top
1 楼rightyeah(众妙之门)回复于 2005-04-14 08:06:10 得分 0
up一下Top
2 楼zhaoxiaoyang(梅雪香@深圳)回复于 2005-04-14 08:06:13 得分 0
试用了一下,不错啊
有空再看看源码Top
3 楼xinyunyishui(心云意水)回复于 2005-04-14 08:08:18 得分 0
so so
鼓励一下Top
4 楼boneeater(狗狗)回复于 2005-04-14 08:16:52 得分 0
祝你成功.....幸福啊....Top
5 楼HHH3000(蓝色爱琴海 知耻而后勇)回复于 2005-04-14 09:07:48 得分 0
效果8错~~:—)
支持楼主de行为~!Top
6 楼yzujjcb()回复于 2005-04-14 09:23:09 得分 0
漂亮,
早就想要这个东西了。
祝你幸福哦。Top
7 楼xksteven(不懂)回复于 2005-04-14 10:37:58 得分 0
收藏之 谢谢楼主!祝你幸福Top
8 楼patchclass(黑翼)回复于 2005-04-14 10:53:10 得分 0
不怎么好用IE下面报错
73行,对象不支持此属性或方法
FIREfox下面不能展开Top
9 楼liuquanyi(大狗)回复于 2005-04-14 11:45:45 得分 0
祝福!Top
10 楼faisun(暖阳)回复于 2005-04-14 12:47:03 得分 0
偶没用过 firefox 啊
IE 下我怎么没遇到过报错的?Top
11 楼icefire988(冰火)回复于 2005-04-14 13:35:13 得分 0
祝福楼主!
偶的也没报错!是不是ie版本问题?Top
12 楼eglic(圪圪) (理由永远是谎言,信仰永远是自慰)回复于 2005-04-14 13:43:24 得分 0
不错Top
13 楼haosee(StartMenu)回复于 2005-04-14 14:18:40 得分 0
多谢分享,祝你幸福:)Top
14 楼fantiny(卖身不卖艺的菜鸟)回复于 2005-04-14 15:49:36 得分 0
无条件支持一下Top
15 楼huahaoyueyuan(花好月圆)回复于 2005-04-14 16:07:25 得分 0
不错呀Top
16 楼BILLSJONE(BILL_JONE)回复于 2005-04-14 18:10:17 得分 0
不錯Top
17 楼Forbes(一别西风又一年)回复于 2005-04-14 18:33:28 得分 0
http://www.51forbes.net/dhtml/dtree/
无限级,同级只展开一个节点,支持checkbox,展开到指定节点,节点图标自由配置Top
18 楼rootcn(沙砾)回复于 2005-04-14 18:37:09 得分 0
很好.Top
19 楼wxylvmnn(城隍庙三当家的)回复于 2005-04-14 18:56:25 得分 0
天黑前,找到回家的路。Top
20 楼FEB15(张郎)回复于 2005-04-14 21:43:46 得分 0
IE正常;Mozilla Firefox正常,好像是层的显示问题导致感觉没展开,好像onselect之类的不好使。
TO 楼主 祝福你!
我想将它改成数据库版的
数据库结构
ID 自动编号
SID 上级ID,顶级为零
IDs ID序列,例如"0-1-10-99-456-786"
分类 当前分类名称
路径 分类路径从顶级开始,例如"一-二-三-四-当前分类名称",如果是顶级就是自己的分类名称。
分类添加删除修改,我已经完成,就是前面的用FSO还是用<Script Src="处理页"></Script>这里没攻下。
楼主帮忙!无限分类管理已经搞定... ^_^Top
21 楼BILLSJONE(BILL_JONE)回复于 2005-04-14 22:10:37 得分 0
没有全部展开和全部合上的功能啊Top
22 楼jerryf(object Sender)回复于 2005-04-14 22:13:48 得分 0
学习Top
23 楼jinlei001(雪越艳阳)回复于 2005-04-14 23:12:31 得分 0
顶,有点意思,可以.Top
24 楼jnhfly(酷儿)回复于 2005-04-14 23:50:12 得分 0
haoTop
25 楼ILoveQianQian(马甲1)回复于 2005-04-14 23:56:50 得分 0
UPTop
26 楼FEB15(张郎)回复于 2005-04-15 01:28:26 得分 0
upTop
27 楼swkk(孙悟空空)回复于 2005-04-15 01:53:26 得分 0
很好!Top
28 楼swkk(孙悟空空)回复于 2005-04-15 01:55:08 得分 0
如果调用数据库怎么写?Top
29 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2005-04-15 06:34:21 得分 0
调用数据库的我这里有
呵呵
可以和我联系
网站的数据库用不了了 5555555555555555
呵呵
18943892
Top
30 楼ljw03190(8270370)回复于 2005-04-15 08:20:01 得分 0
感谢,祝福楼主Top
31 楼chzxq(毛毛鼠)回复于 2005-04-15 08:20:57 得分 0
不错
Top
32 楼ustb(偶然)回复于 2005-04-15 08:46:52 得分 0
功能还算不错,跟Dtree差不多,Dtree的功能更强一些
祝楼主成功!Top
33 楼julychina(九品代码工)回复于 2005-04-15 08:58:54 得分 0
厉害。
Top
34 楼zl9732(zl9732)回复于 2005-04-15 09:16:32 得分 0
很好~Top
35 楼deiphi(面壁思过)回复于 2005-04-15 09:21:33 得分 0
幸福啊....Top
36 楼daimojingdeyu(戴墨镜的鱼)回复于 2005-04-15 09:23:10 得分 0
upTop
37 楼underone(再看抽你小丫的)回复于 2005-04-15 09:33:36 得分 0
谢谢分享Top
38 楼sunboy_163(阳光)回复于 2005-04-15 09:39:26 得分 0
看了,确实不错。Top
39 楼zhuangyan2004(庄严)回复于 2005-04-15 10:31:18 得分 0
已收藏,thank you very much.Top
40 楼zfp(自由人)回复于 2005-04-15 11:09:43 得分 0
真的不错,收藏Top
41 楼faisun(暖阳)回复于 2005-04-15 11:10:35 得分 0
数据库的我已经做出来啦
把类别全部放在一个二维数组里,
然后用递归列出来就OK了Top
42 楼12345_(上山打老虎)回复于 2005-04-15 12:25:53 得分 0
不错哇!Top
43 楼ssalfc(www.BaiduED.cn)回复于 2005-04-15 12:34:01 得分 0
不错,正在找呢,谢了.
同时也祝福你们能走到一起Top
44 楼Aimar168(跟着微软走,牵着太阳的手)回复于 2005-04-15 12:42:34 得分 0
不错Top
45 楼zfhuangwei(追风小蛇)回复于 2005-04-15 15:10:03 得分 0
upTop
46 楼star_wang(刀手)回复于 2005-04-15 16:27:46 得分 0
b错哦Top
47 楼cool___boy163(不回帖不是我的错)回复于 2005-04-15 16:36:25 得分 0
不错,我正在搞这方面的,JS写的,不知道能不能和数据库同步?Top
48 楼FEB15(张郎)回复于 2005-04-15 18:16:14 得分 0
faisun(暖阳)
数据库的我已经做出来啦
把类别全部放在一个二维数组里,
然后用递归列出来就OK了
------------------------------------------------------------
二维不行吧,N级情况怎么办?Top
49 楼faisun(暖阳)回复于 2005-04-15 19:06:22 得分 0
发个数据库处理的情况,PHP+MySQL:
--
-- 数据库: `demo`
--
--
-- 表的结构 `demo_menutree`
--
CREATE TABLE `demo_menutree` (
`tid` smallint(4) NOT NULL auto_increment,
`tname` varchar(250) NOT NULL default '',
`parentid` smallint(4) NOT NULL default '0',
`children` smallint(4) NOT NULL default '0',
`displayorder` int(10) NOT NULL default '1',
PRIMARY KEY (`tid`)
) TYPE=MyISAM COMMENT='产品分类表' AUTO_INCREMENT=41 ;
--
-- 导出表中的数据 `demo_menutree`
--
INSERT INTO `demo_menutree` VALUES (1, '手机专区', 0, 6, 2);
INSERT INTO `demo_menutree` VALUES (2, '时尚饰物', 0, 5, 4);
INSERT INTO `demo_menutree` VALUES (3, '美容护肤', 0, 5, 3);
INSERT INTO `demo_menutree` VALUES (4, '电子产品', 0, 5, 1);
INSERT INTO `demo_menutree` VALUES (5, '家居精品', 0, 4, 5);
INSERT INTO `demo_menutree` VALUES (6, '器皿', 5, 0, 1);
INSERT INTO `demo_menutree` VALUES (7, '床上用品', 5, 0, 1);
INSERT INTO `demo_menutree` VALUES (8, '桌椅', 5, 0, 1);
INSERT INTO `demo_menutree` VALUES (9, '消耗用品', 5, 0, 1);
INSERT INTO `demo_menutree` VALUES (10, '特价区', 0, 3, 6);
INSERT INTO `demo_menutree` VALUES (11, '电脑配件', 10, 0, 1);
INSERT INTO `demo_menutree` VALUES (12, '书藉', 10, 0, 1);
INSERT INTO `demo_menutree` VALUES (13, '食品', 10, 0, 1);
INSERT INTO `demo_menutree` VALUES (14, '羊城通充值', 36, 0, 1);
INSERT INTO `demo_menutree` VALUES (15, '联通充值', 36, 0, 1);
INSERT INTO `demo_menutree` VALUES (16, '摩托罗拉', 1, 0, 1);
INSERT INTO `demo_menutree` VALUES (17, '诺基亚', 1, 0, 1);
INSERT INTO `demo_menutree` VALUES (18, '爱立信', 1, 0, 1);
INSERT INTO `demo_menutree` VALUES (19, '西门子', 1, 0, 1);
INSERT INTO `demo_menutree` VALUES (20, '飞利浦', 1, 0, 1);
INSERT INTO `demo_menutree` VALUES (21, '阿尔卡特', 1, 0, 1);
INSERT INTO `demo_menutree` VALUES (22, '匙扣', 2, 0, 1);
INSERT INTO `demo_menutree` VALUES (23, '布娃娃', 2, 0, 1);
INSERT INTO `demo_menutree` VALUES (24, '相框', 2, 0, 1);
INSERT INTO `demo_menutree` VALUES (25, '闹钟', 2, 0, 1);
INSERT INTO `demo_menutree` VALUES (26, '其他', 2, 0, 1);
INSERT INTO `demo_menutree` VALUES (27, '防晒系列', 3, 0, 1);
INSERT INTO `demo_menutree` VALUES (28, '美白系列', 3, 0, 1);
INSERT INTO `demo_menutree` VALUES (29, '排毒系列', 3, 0, 1);
INSERT INTO `demo_menutree` VALUES (30, '护肤系列', 3, 0, 1);
INSERT INTO `demo_menutree` VALUES (31, '润唇膏', 3, 0, 1);
INSERT INTO `demo_menutree` VALUES (32, 'MP3', 4, 0, 1);
INSERT INTO `demo_menutree` VALUES (33, 'Diskman', 4, 0, 1);
INSERT INTO `demo_menutree` VALUES (34, 'Walkman', 4, 0, 1);
INSERT INTO `demo_menutree` VALUES (35, '电池充电器', 4, 0, 1);
INSERT INTO `demo_menutree` VALUES (36, '在线充值', 0, 3, 7);
INSERT INTO `demo_menutree` VALUES (37, '移动充值', 4, 0, 1);
INSERT INTO `demo_menutree` VALUES (40, '移动充值', 36, 0, 1);
/* 以下是 dbmenutree.php */
<?
mysql_connect("localhost", "root", "");
mysql_select_db("demo");
$optable = "demo_menutree";
$resultarr=array();
$query=mysql_query("select * from $optable order by displayorder");
while($myresult=mysql_fetch_array($query)){
$resultarr[]=$myresult;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>dbmenutree</title>
<style type='text/css'>
td,a {
color: #000000;
text-decoration:none;
}
</style>
</head>
<body>
<script language='JavaScript' src='menutree/menutree.js'></script>
<script language='JavaScript'>
document.body.onselectstart=new Function('return false;');
addtree('<B>商品总目录</B>');
<?
function getsortedtype($parentid=0,$subtype="-"){ //递归排序 并输出
global $resultarr;
for($i=0;$i<count($resultarr);$i++){
$result=$resultarr[$i];
$tid=$result[tid];
if($result[parentid]==$parentid){ //找到一个类别
if($result[children]){ //有子类别不做链接
$link="";
}else{
$link="tt.php?tid=$tid";
}
if($subtype=="-"){ //第一层默认展开
echo "addtree('$subtype*$result[tname]','$link');\n";
}else{
echo "addtree('$subtype$result[tname]','$link');\n";
}
if($result[children]){ //如果有子类别
getsortedtype($tid,$subtype."-"); //递归,直到有父无子类别
}
}
}
}
getsortedtype();
?>
createtree();
</script>
</body>
</html>
Top
50 楼faisun(暖阳)回复于 2005-04-15 19:10:15 得分 0
数据库中,
parentid 是上一级 id ,顶级为 0 ,不限级数
children 是子项目数, 0 为无子项目
Top
51 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2005-04-15 20:25:21 得分 0
http://www.jyklzz.net/tree.htm
我的树 , 感兴趣的可以看一下。Top
52 楼FEB15(张郎)回复于 2005-04-15 22:16:57 得分 0
faisun(暖阳)
--------------------------------
谢谢,我现在还只搞懂了用ASP递归从子向上找父,从父向下找子比较麻烦(扩展分类有点想不通)
数据库我的结构和你的结构差不多
如何让他按规则产生树需要的参数群思考不下去。Top
53 楼FEB15(张郎)回复于 2005-04-15 22:18:00 得分 0
从子向上找父,只有一条线,向下找儿子的话如果碰到若干分支 该怎么做?Top
54 楼faisun(暖阳)回复于 2005-04-15 22:53:46 得分 0
先处理自己,有儿子的话先递归处理儿子,然后再处理自己的兄弟.Top
55 楼wei8265(清新氧气)回复于 2005-04-15 23:17:00 得分 0
不错!Top
56 楼linei(ASP.NET→JSP/SERVLET)回复于 2005-04-15 23:28:27 得分 0
已经下载,谢谢.Top
57 楼qsdnet(我想学编程)回复于 2005-04-16 00:04:47 得分 0
真强啊,不佩服不行,非常感谢楼主分享,向楼主学习!!!
顶!!!Top
58 楼FEB15(张郎)回复于 2005-04-16 02:27:54 得分 0
先处理自己,有儿子的话先递归处理儿子,然后再处理自己的兄弟.
-----------------------------------------------------------------
还是有点打结,能不能简易的来个 IF 流程,谢谢!Top
59 楼FEB15(张郎)回复于 2005-04-16 02:37:43 得分 0
偶基础不好,谢谢 faisun(暖阳) 热心更帖。 ^_^
好人好报,你一定会成功拿下MM滴!Top
60 楼faisun(暖阳)回复于 2005-04-16 13:00:32 得分 0
function getsortedtype(父ID,层数){
遍历整个组{
IF(找到一个儿子){
处理儿子
IF(该儿子还有儿子){
getsortedtype(儿子的ID,层数+1) //这时候,把儿子的ID作为父ID再找儿子
//找完儿子的儿子后,继续本次循环找父ID的其他儿子
}
}
}
}Top
61 楼3dudu()回复于 2005-04-16 19:00:24 得分 0
<script LANGUAGE="vbscript">
<!--
sub bb(obj)
if document.getElementById(obj) is nothing then
document.getElementById("img" & obj).src="images/menu_open.gif"
exit sub
end if
if document.getElementById(obj).style.display="none" then
document.getElementById(obj).style.display="block"
document.getElementById("img" & obj).src="images/menu_open.gif"
else
document.getElementById(obj).style.display="none"
document.getElementById("img" & obj).src="images/menu_close.gif"
end if
end sub
//-->
</script>
<table><%tree(0)%><?table>
<%'显示部门=======================================================================================
dim ii
ii=0
i=0
sub tree(selec)
sql="Select * From [department] where depfollowid="&selec&""
'Set Rs3=Conn.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
rs3.open sql,Conn,1,1
do while not rs3.eof
rs3.moveprevious
if rs3.bof then
rs3.movenext%>
<tr><td align="right">
<table clsaa="a4" id="<%=rs3("depfollowid")%>" width="100%" border="0" cellspacing="0" cellpadding="0">
<%else
rs3.movenext
end if
if selec=0 then
%>
<tr class="a1">
<td>
<a onclick='vbscript:bb("<%=rs3("id")%>")' style="cursor:hand">
<img src="images/menu_open.gif" border="0" id="img<%=rs3("id")%>"></a>
<%=rs3("depname")%>
</td>
</tr>
<%else%>
<tr>
<td>
<%=string(ii*2," ")%>
<a onclick='vbscript:bb("<%=rs3("id")%>")' style="cursor:hand">
<img src="images/menu_open.gif" border="0" id="img<%=rs3("id")%>"></a>
<%=rs3("depname")%></td>
</tr>
<%
end if
ii=ii+1
i=i+1
tree(rs3("id"))
ii=ii-1
rs3.movenext
if rs3.eof then%>
</table></td></tr>
<%end if
loop
Set Rs3 = Nothing
end sub
%>
表id,depfollowid(父节点),.....Top
62 楼faisun(暖阳)回复于 2005-04-16 19:44:00 得分 0
现在我更改了一些东西,可以支持 fireFox 啦!
请大家重新下载.Top
63 楼FEB15(张郎)回复于 2005-04-16 21:35:23 得分 0
漂亮Top
64 楼FEB15(张郎)回复于 2005-04-16 21:38:19 得分 0
测试结果,侧边栏不能在 Mozilla Firefox 收缩展开,建议改动为可手动拖放侧边栏。Top
65 楼FEB15(张郎)回复于 2005-04-16 21:41:50 得分 0
Mozilla Firefox 鼠标左键点住分割线 不放 左右晃晃,有个有趣的现象。
鄙视 Mozilla Firefox , 网上吹得太厉害了,w3c更无聊。Top
66 楼faisun(暖阳)回复于 2005-04-16 23:35:03 得分 0
侧边栏忘记改了
刚才试着改了一下,一大堆的错误,FT,我打算放弃改那里了Top
67 楼FEB15(张郎)回复于 2005-04-17 10:40:30 得分 0
我看我还是搞网站测试算了。
递归遍历怎个无限分类,搞了半天没搞成功。Top
68 楼FEB15(张郎)回复于 2005-04-17 13:47:10 得分 0
完成,我这边数据库版也完成了,HOHO。 的确速度比较慢,改用FSO生成。Top
69 楼shuangren(候鸟)回复于 2005-04-17 14:38:33 得分 0
好,先收下Top
70 楼afdfgg(午夜飞行)回复于 2005-04-17 15:07:47 得分 0
我做了asp+sqlserver版本的,才两层,速度尚可,不知道层次更多如何Top
71 楼iuhxq(小灰)回复于 2005-04-17 21:40:30 得分 0
我的http://asp2004.net/temp/treemenu
楼主的效果不错。呵呵Top
72 楼shiwaxingge((纳兰菜花))回复于 2005-04-18 13:50:56 得分 0
收藏一下,试过,真不错,页面好看效果佳Top
73 楼snowclash(落雪之音)回复于 2005-04-18 17:47:37 得分 0
mark下,:)Top
74 楼hengshanyang()回复于 2005-04-19 18:09:21 得分 0
very good
zhen haoTop
75 楼net205(人不可以无耻到这种地步)回复于 2005-04-19 19:54:48 得分 0
这么多树,,markTop
76 楼ytcx_lt_82(仰天长啸)回复于 2005-04-19 20:35:25 得分 0
好东东值得学Top
77 楼mybread(马)回复于 2005-07-24 17:52:41 得分 0
在IE5.0下运行出现:对象不支持此属性或方法Top
78 楼zlj113(·米老鼠· 学习)回复于 2005-07-24 18:49:55 得分 0
这么久了,楼主的MM追到没???Top
79 楼sunboy_163(阳光)回复于 2005-07-25 09:38:46 得分 0
===========================================================================
今天看了这个js树,感觉很棒!我也已经收藏了!唯一遗憾是没有“checkbox”复选框。请问faisun?能不能加一个“checkbox”复选框,然后在做一个按钮,这棵树就可以用在软件的部门选择人员上了。当按确定时,弹出一个js对话框,显示所选择人员UserID。这样,这个棵就完美
了!谢!期待你的回复。
============================================================================Top
80 楼deiphi(面壁思过)回复于 2005-07-25 11:01:09 得分 0
祝福Top
81 楼faisun(暖阳)回复于 2005-07-30 21:22:04 得分 0
checkbox 之类的按照自己的需要改啦.
MM追到了:)Top
82 楼sjjf(水晶剑锋)回复于 2005-07-30 21:25:44 得分 0
呵呵,恭喜!!! 哪天有喜糖吃?Top




