php框架

 首页 > php框架 > ThinkPHP > thinkphp 实现无限分类 - Thinkphp

thinkphp 实现无限分类 - Thinkphp

分享到:
【字体:
导读:
          以上是效果图1 数据库设计2 添加后数据库的数据如下图解析下:cid 栏目自增idpid 栏目的父类id,id为0表示是顶级栏目cat_name 栏目名称p...

thinkphp 实现无限分类

以上是效果图

1.数据库设计

2.添加后数据库的数据如下图

解析下:cid  栏目自增id

pid 栏目的父类id,id为0表示是顶级栏目

cat_name  栏目名称

path 表示栏目的层级关系

实现效果主要用到:

mysql的一个函数  concat():返回结果为连接参数产生的字符串

1,控制器的分类显示方法

  1. public function   fenlei  (){ 
  2. $cate=M('Category'); 
  3. $list=$cate->field("cid,cat_name,pid,path,concat(path,'-',cid) as bpath")->order('bpath')->select(); 
  4. foreach($list as $key=>$value){ 
  5. $list[$key]['count']=count(explode('-',$value['bpath'])); 
  6. $this->assign('alist',$list); 
  7. $this->display(); 

2,控制器的分类添加方法

  1. public function addCat(){ 
  2. $cate=D('Category'); 
  3. if($cate->create()){ 
  4. if($cate->add()){ 
  5. $this->redirect('/Test/fenlei'); 
  6. }else
  7. $this->error('添加栏目失败'); 
  8. }else
  9. $this->error($cate->getError()); 

3,栏目模型类

  1. class CategoryModel extends Model{ 
  2. protected $_auto=array
  3. array('path','tclm',3,'callback'), 
  4. ); 
  5. function tclm(){ 
  6. $pid=isset($_POST['pid'])?(int)$_POST['pid']:0; 
  7. //echo ($pid); 
  8. if($pid==0){ 
  9. $data=0; 
  10. }else
  11. $list=$this->where("cid=$pid")->find(); 
  12. $data=$list['path'].'-'.$list['cid'];//子类的path为父类的path加上父类的cid 
  13. return $data
  14. ?> 

4,主要的html代码

  1.  
  2. "__URL__/addCat" method="post" > 
  3. "text-align:center;margin-top:80px;" > 
  4. 请选择父类栏目:"pid"   size="20"  style="width:250px;"
  5. "alist"   id="v" > 
  6. "{$v['cid']}" > 
  7. <for start="0" end="$v['count']"
  8.     
  9. for
  10. {$v['cat_name']} 
  11.  
  12.  
  13.  

  14.  
  15. 新的栏目名称:"text" name="cat_name" style="width:230px;"  />
     
  16. "submit"  value="添加栏目" /> 
 
  •  
  •  
  • 分享到:
    thinkphp 项目入口文件及项目前台和后台...
    thinkphp 项目入口文件及项目前台和后台公用配置文件 公用配置文件:   前台的配置文件:   后台的配置文件:   前台的入口文件:  
    如何正确学习ThinkPHP?我要如何用好它?...
    如何正确学习ThinkPHP?我要如何用好它? PHP学习过程中,我们经常会遇到一个词--ThinkPHP。 学过PHP或接触过PHP的童鞋们一定对ThinkPHP这个词再熟悉不过了。没错,她是一款PHP框架,今天,PHPChina培训部小编就来带你来一趟短暂的“ThinkPHP”之旅,让你足不出户一样能感受到ThinkPHP带给你...
    •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
    • 在这里……