本篇就一点一点教大家写一个无限级分类出来,其实掌握一个知识,最主要的是要掌握无限级分类的逻辑,那么写起来就很容易的多了。
首先看数据库表:xp_cate
控制器:CateAction.class.php
<?phpclass 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
<?phpclass CateModel extends Model{//对应数据库中的表xp_cateprotected $_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="/Article/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>
显示结果如下:
有没有掌握无限级分类的逻辑,上文分享的thinkphp无限级分类代码,希望对大家的学习有所帮助。
相关文章推荐:
1.php+mysql实现无限级分类
2.2款PHP无限级分类实例代码