后台树状菜单,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作为关联字段,以一维形式存储.使用时全部查询出来,然后在内存中拼装成树状结构.现在主要涉及的是拼装方法的问题. 一般可以进行 递归调 ...
随机推荐
- shell--2.shell数组
shell 数组 (1)定义数组 shell中,用括号表示数组,数组元素用空格分开,定义数组的一般形式 arrt_name=(val1 val2 val3) 或者 arry_name=(val1 va ...
- java高cup占用解决方案
项目中发现java cpu占用高达百分之四百,查看代码发现有一个线程在空转,拉高了cup while(true){ } 解决方案,循环中加入延迟:Thread.sleep(Time): 总结下排查CP ...
- Redhat/Ubuntu/Windows下安装Docker
Redhat/Ubuntu/Windows下安装Docker 什么是Docker Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go语言并遵从 ...
- Mybatis 使用maven插件mybatis-generator自动生成entities和SQL和mapper
第一步:在pom中添加该插件的配置,我直接把pom贴上来好了 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...
- jquery 20161014
jquery.fn.extend <!DOCTYPE html> <html> <head lang="en"> <meta charse ...
- UVA 11464 暴力+位运算 ***
题意:给你一个 n * n 的 01 矩阵,现在你的任务是将这个矩阵中尽量少的 0 转化为 1 ,使得每个数的上下左右四个相邻的数加起来是偶数.求最少的转化个数. 新风格代码 lrj书上说的很清楚了, ...
- 无法从“char*转换为“LPCWSTR”
解决办法: 第一种方法:工程属性->配置属性->右边 项目默认值->字符集 改为未设置 第二种:一般直接加个L在前面,当是字符串常量的时候可以这样,也可以_T(x)等 来自:软件 ...
- 函数图象(N=x+y*i)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Codeforces Round #365 (Div. 2)
A题 Mishka and Game 水..随便统计一下就A了 #include <cstdio> #include <map> #include <set> #i ...
- 《DSP using MATLAB》示例Example5.10
代码: n = 0:10; x = 10*(0.8) .^ n; [xec, xoc] = circevod(x); %% -------------------------------------- ...

编辑