如果你需要更好看的无限分类,请查看
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"] . '&nbsp;&nbsp;&nbsp;&nbsp;<a id="new_classify_edit" rel=' . $v["id"] . '">编辑</a>&nbsp;&nbsp;&nbsp;&nbsp;<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"] . '&nbsp;&nbsp;&nbsp;&nbsp;<a id="new_classify_edit" rel=' . $v["id"] . '">编辑</a>&nbsp;&nbsp;&nbsp;&nbsp;<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'];?>"> &nbsp;&nbsp;<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 } ?>
 html
 
http://www.jeasyui.com/demo/main/index.php?plugin=Tree&theme=gray&dir=ltr&pitem=
<!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实现递归无限分类的更多相关文章

  1. 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)

    初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...

  2. js, 树状菜单隐藏显示

    js写的不是很严谨~~~嘿嘿   <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

  3. 自写JQ控件-树状菜单控件[demo下载]

    一个多月没有写博客了,最近也弄一个基于JQ的树状菜单控件,在此分享给大家.另外呢,通过这个例子分享一下怎么写JQ控件的. 事实上工作中,也是经常遇到的,有些时候自己想实现一些前端效果,用网上一些插件吧 ...

  4. MVC身份验证.MVC过滤器.MVC6关键字Task,Async.前端模拟表单验证,提交.自定义匿名集合.Edge导出到Excel.BootstrapTree树状菜单的全选和反选.bootstrap可搜索可多选可全选下拉框

    1.MVC身份验证. 有两种方式.一个是传统的所有控制器继承自定义Control,然后再里面用MVC的过滤器拦截.所以每次网站的后台被访问时.就会先走入拦截器.进行前端和后端的验证 一个是利用(MVC ...

  5. 纯CSS打造可折叠树状菜单

    1:Html代码 <li> <label for="subsubfolder1">下级</label> <input id="s ...

  6. 学用纯CSS打造可折叠树状菜单

    随着CSS3的发布,国外研究正如火如荼,但在国内还有很多人抱着IE不支持CSS3的想法,始终无动于衷不肯去学习.但是历史告诉我们,好的东西必将盛行,CSS3也终将也会替代CSS2,下面就和大家分享一个 ...

  7. C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得

    在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...

  8. php递归无限分类、根据子类获取所有顶类

    //递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...

  9. 使用Map辅助拼装树状结构,消除递归调用

    目前菜单或其他树状结构在数据库中的存储,多数是以一个parentid作为关联字段,以一维形式存储.使用时全部查询出来,然后在内存中拼装成树状结构.现在主要涉及的是拼装方法的问题. 一般可以进行 递归调 ...

随机推荐

  1. shell--2.shell数组

    shell 数组 (1)定义数组 shell中,用括号表示数组,数组元素用空格分开,定义数组的一般形式 arrt_name=(val1 val2 val3) 或者 arry_name=(val1 va ...

  2. java高cup占用解决方案

    项目中发现java cpu占用高达百分之四百,查看代码发现有一个线程在空转,拉高了cup while(true){ } 解决方案,循环中加入延迟:Thread.sleep(Time): 总结下排查CP ...

  3. Redhat/Ubuntu/Windows下安装Docker

    Redhat/Ubuntu/Windows下安装Docker 什么是Docker Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go语言并遵从 ...

  4. Mybatis 使用maven插件mybatis-generator自动生成entities和SQL和mapper

    第一步:在pom中添加该插件的配置,我直接把pom贴上来好了 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  5. jquery 20161014

    jquery.fn.extend <!DOCTYPE html> <html> <head lang="en"> <meta charse ...

  6. UVA 11464 暴力+位运算 ***

    题意:给你一个 n * n 的 01 矩阵,现在你的任务是将这个矩阵中尽量少的 0 转化为 1 ,使得每个数的上下左右四个相邻的数加起来是偶数.求最少的转化个数. 新风格代码 lrj书上说的很清楚了, ...

  7. 无法从“char*转换为“LPCWSTR”

    解决办法: 第一种方法:工程属性->配置属性->右边 项目默认值->字符集 改为未设置 第二种:一般直接加个L在前面,当是字符串常量的时候可以这样,也可以_T(x)等   来自:软件 ...

  8. 函数图象(N=x+y*i)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. Codeforces Round #365 (Div. 2)

    A题 Mishka and Game 水..随便统计一下就A了 #include <cstdio> #include <map> #include <set> #i ...

  10. 《DSP using MATLAB》示例Example5.10

    代码: n = 0:10; x = 10*(0.8) .^ n; [xec, xoc] = circevod(x); %% -------------------------------------- ...