后台树状菜单,js实现递归无限分类
如果你需要更好看的无限分类,请查看
http://www.cnblogs.com/zx-admin/p/8021734.html //新闻类别管理
public function new_classify() { $arr = M('news_classify')->where("fid = 0")->select();
$html = '<ul class="easyui-tree"><li><span>新闻中心</span><ul>';
if (!empty($arr)) {
$html .= $this->_tree($arr);
}
$html .= '</ul></li></ul>'; $this->assign("html", $html);
$this->display();
} //递归树
public function _tree($arr) { foreach ($arr as $key => $v) { $fid1 = $v['id'];
//查询是否有子类
$res = M('news_classify')->where("fid = $fid1")->select(); if (!empty($res)) {
$html .= '<li ';
if (!empty($res)) {
$html .= 'data-options="state:\'closed\'"';
}
$html .= '> <span> ' . $v["new_classify_name"] . ' <a id="new_classify_edit" rel=' . $v["id"] . '">编辑</a> <a id="new_classify_del" rel=' . $v["id"] . '>删除</a></span><ul>'; $html .= $this->_tree($res); $html .= '</ul></li>';
} else {
$html .= '<li ';
if (!empty($res)) {
$html .= 'data-options="state:\'closed\'"';
}
$html .= '> <span> ' . $v["new_classify_name"] . ' <a id="new_classify_edit" rel=' . $v["id"] . '">编辑</a> <a id="new_classify_del" rel=' . $v["id"] . '>删除</a></span><ul>'; // $html .= $this->_tree($res); //为空就不需要继续遍历 $html .= '</ul></li>';
} } return $html;
}
![]() |
id | fid父ID | new_classify_name分类名称 | is_show是否显示 | sort_id排序id | urlurl链接 | |||
|---|---|---|---|---|---|---|---|---|---|
编辑 |
复制 |
删除 |
1 | 0 | 新闻 | 0 | 0 | ||
编辑 |
复制 |
删除 |
2 | 0 | 公告 | 0 | 0 | ||
编辑 |
复制 |
删除 |
3 | 1 | 体育 | 0 | 0 | ||
编辑 |
复制 |
删除 |
4 | 2 | 教育 | 0 | 0 | ||
编辑 |
复制 |
删除 |
5 | 3 | 想详细 | 0 | 0 | ||
编辑 |
复制 |
删除 |
6 | 4 | 是飞洒的 | 0 | 0 | ||
function _tree($arr, $fid = 0, $level = 0) {
static $tree = array(); #用于保存重组的结果,注意使用静态变量
foreach ($arr as $v) {
if ($v['fid'] == $fid) {
//说明找到了以$pid为父节点的子节点,将其保存
$v['level'] = $level;
$tree[] = $v;
//然后以当前节点为父节点,继续找其后代节点
_tree($arr, $v['id'], $level + 1);
}
}
return $tree;
}
调用返回结果,这段代码随便拔下来的,需要改一下才能看到结果
<?php foreach ($classify as $value) { ?>
<form action="<?php echo site_url('admin/classify_update');?>" class="jqtransform" method="post">
<table class="form_table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="td_center">第<?php echo ($value['level']+1);?>级分类:</td>
<td class="">
<input type="hidden" name="id" value="<?php echo $value['id'];?>" />
<?php echo str_repeat("+++++++", $value['level'])?> <input type="text" name="title" class="input-text lh30" size="15" value="<?php echo $value['title'];?>"> <input type="text" name="url" class="input-text lh30" size="15" value="<?php echo $value['url'];?>">
<input type="submit" value="更新" class="ext_btn ext_btn_submit" onclick="location.href='<?php echo base_url('')."index.php/admin/classify_update/".$value['id'];?>'">
<input type="button" class="ext_btn ext_btn_error" value="删除" onclick="location.href='<?php echo base_url('')."index.php/admin/classify_del/".$value['id'];?>'">
</td>
</tr>
</table>
</form>
<?php } ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Basic Tree - jQuery EasyUI Demo</title>
<link rel="stylesheet" type="text/css" href="easyui.css">
<link rel="stylesheet" type="text/css" href="icon.css"> <script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.easyui.min.js"></script>
</head>
<body>
<h2>Basic Tree</h2>
<p>Click the arrow on the left to expand or collapse nodes.</p>
<div style="margin:20px 0;"></div>
<div class="easyui-panel" style="padding:5px">
<ul class="easyui-tree">
<li>
<span>My Documents</span>
<ul>
<li data-options="state:'closed'">
<span>Photos <a href="http://www.baidu.com">编辑</a> <a href="http://www.baidu.com">删除</a></span>
<ul>
<li>
<span>Friend22222 <a href="http://www.baidu.com">编1111111111111辑</a> </span>
</li>
<li>
<span>Wife</span>
</li>
<li>
<span>Company</span>
</li>
</ul>
</li>
<li>
<span>Program Files</span>
<ul>
<li>Intel</li>
<li>Java</li>
<li>Microsoft Office</li>
<li>Games</li>
</ul>
</li>
<li>index.html</li>
<li>about.html</li>
<li>welcome.html</li>
</ul>
</li>
</ul>
</div> </body>
</html>
后台树状菜单,js实现递归无限分类的更多相关文章
- 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)
初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...
- js, 树状菜单隐藏显示
js写的不是很严谨~~~嘿嘿 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- 自写JQ控件-树状菜单控件[demo下载]
一个多月没有写博客了,最近也弄一个基于JQ的树状菜单控件,在此分享给大家.另外呢,通过这个例子分享一下怎么写JQ控件的. 事实上工作中,也是经常遇到的,有些时候自己想实现一些前端效果,用网上一些插件吧 ...
- MVC身份验证.MVC过滤器.MVC6关键字Task,Async.前端模拟表单验证,提交.自定义匿名集合.Edge导出到Excel.BootstrapTree树状菜单的全选和反选.bootstrap可搜索可多选可全选下拉框
1.MVC身份验证. 有两种方式.一个是传统的所有控制器继承自定义Control,然后再里面用MVC的过滤器拦截.所以每次网站的后台被访问时.就会先走入拦截器.进行前端和后端的验证 一个是利用(MVC ...
- 纯CSS打造可折叠树状菜单
1:Html代码 <li> <label for="subsubfolder1">下级</label> <input id="s ...
- 学用纯CSS打造可折叠树状菜单
随着CSS3的发布,国外研究正如火如荼,但在国内还有很多人抱着IE不支持CSS3的想法,始终无动于衷不肯去学习.但是历史告诉我们,好的东西必将盛行,CSS3也终将也会替代CSS2,下面就和大家分享一个 ...
- C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得
在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...
- php递归无限分类、根据子类获取所有顶类
//递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...
- 使用Map辅助拼装树状结构,消除递归调用
目前菜单或其他树状结构在数据库中的存储,多数是以一个parentid作为关联字段,以一维形式存储.使用时全部查询出来,然后在内存中拼装成树状结构.现在主要涉及的是拼装方法的问题. 一般可以进行 递归调 ...
随机推荐
- 64位操作系统 通过ODP.NET 访问ORACLE 11g
摘要:64位操作系统部署.NET 程序访问oracle时,无法连接问题.(注意:客户端是64位系统 ,服务端是否64位 还是32位无关.) 1.到oracle 官网搜索相关版本的 ODAC网址: ht ...
- 两个int的和判断溢出
long a,b; cin>>a>>b; long i; i = a+b; if((i^a)<0 && (i^b)<0) cout<<& ...
- python 内置&&递归
lambda 优点: 1:可以简单使用一个脚本来替代我们的函数 2:不用考虑命名的问题 3:简化代码的可读性,不用跳转到def了,省去这样的步骤 内置函数:bif filter:过滤器 map:映射 ...
- java程序打包成jar
1. 建立文件夹:proj,在该文件夹下建立3个子文件夹:lib,src 2. 在lib文件夹中放置依赖的jar包 3. 在src中放置类文件:com.cnjava.demo.Main.java 4. ...
- 设计模式--单例模式Singleton(创建型)
单例模式很显然是定义一个类,这个类在程序中只有唯一的实例对象.一般单例类的构造函数是私有的,只能通过调用静态函数GetInstance来获取实例. 一.单例模式有三种:懒汉式单例.饿汉式单例.登记式单 ...
- CSS 魔法系列:纯 CSS 绘制三角形(各种角度)
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- tp5 中 model 的聚合查询
方法 说明 Count 统计数量,参数是要统计的字段名(可选) Max 获取最大值,参数是要统计的字段名(必须) Min 获取最小值,参数是要统计的字段名(必须) Avg 获取平均值,参数是要统计的字 ...
- win10预览版9926升级10049操作步骤
文章转自:豆豆系统收藏备用 win10预览版系统安装的用户非常多,现在最新版本已经到了10049,但是之前很多装了9926版本或者10041版本的同学在通过系统自动更新的时候,且发现,微软官方提供的速 ...
- 解决linux系统启动之:unexpected inconsistency:RUN fsck
现象: 虚拟机在启动过程中提示: unexpected inconsistency;RUN fsck MANUALLY 原因分析: 1.由于意外关机导致的文件系统问题 解决方法: 方法1: 输入ROO ...
- 使用VS2010编译64的Geos库
Geos库在cmake中总是报错,所以我决定试试nmake编译64位的库.现将编译过程记录如下: 1.下载Geos,我下的是最新版3.5.0,地址在 http://trac.osgeo.org/geo ...

编辑