Thinkphp实现无限极分类

浏览:29530 发布日期:2013/06/08 分类:技术分享 关键字: 无限 分类
无限级分类太重要了。可是我就是不会写,怎么办?

本篇就一点一点教大家写一个无限级分类出来。

最主要的是要掌握无限极分类的逻辑,那么写起来就很容易的多了

首先看数据库表:xp_cate



控制器: CateAction.class.php<?php
 class CateAction extends Action{
 function index(){
 $cate=M('Cate');
 $list=$cate->field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')->select();
 foreach($list as $key=>$value){
 $list[$key]['count']=count(explode('-',$value['bpath']));
 }
 $this->assign('alist',$list);
 $this->display();
 }//添加栏目
 function add(){
 $cate=new CateModel();if($vo=$cate->create()){
 if($cate->add()){
 $this->success('添加栏目成功');
 }else{
 $this->error('添加栏目失败');
 }
 }else{
 $this->error($cate->getError());
 }
 }}
 ?>
模型:CateModel.class.php<?php
 class CateModel extends Model{//对应数据库中的表xp_cate
 protected $_auto=array(
 array('path','tclm',3,'callback'),
 );function tclm(){
 $pid=isset($_POST['pid'])?(int)$_POST['pid']:0;
 echo ($pid);
 if($pid==0){
 $data=0;
 }else{
 $list=$this->where("id=$pid")->find();
 $data=$list['path'].'-'.$list['id'];//子类的path为父类的path加上父类的id
 }
 return $data;
 }
 }
 ?>
模板:index.html<form action="!-URL-!/add" method="post">
 请选择父级栏目:<select name="pid" size="20">
 <option value="0">根栏目</option>
 <volist name="alist" id="vo">
 <option value="{$vo['id']}">
 <for start="0" end="$vo['count']">
   
 </for>
 {$vo['name']}
 </option>
 </volist>
 </select><br />
 新的栏目名称:<input type="text" name="name" /><br />
 <input type="submit" value="添加栏目" />
 </form>
 


显示结果如下:
最佳答案
评论( 相关
后面还有条评论,点击查看>>