使用ThinkPHP的自动完成实现无限级分类实例详解

5年以前  |  阅读数:319 次  |  编程语言:PHP 

一、实现效果

 

二、主要代码

  1、模板

  2、控制器

    ・index模块

    ・add模块

 

  3、模型

三、代码

  以便于各位看官复制测试

  1、模板


    <form action="__URL__/add" method="post">
    栏目<select name="fid" size=20>
    <option value="0">栏目</option>
    <volist name='list' id='vo'>
    <option value="{$vo['id']}">
    {$vo['blank']}{$vo['name']}</option>
    </volist>
    </select><br/>
    添加栏目:<input type="text" name='name'/><br/>
    <input type="submit" value="添加"/> 
    </form>

  2、控制器


    <?php
    class IndexAction extends Action
    {
    /**
    +----------------------------------------------------------
    * 默认操作
    +----------------------------------------------------------
    */
    public function index(){
    $Column=new ColumnModel();
    $list=$Column->field("id,name,fid,sort,concat(sort,'-',id) nsort")->order('nsort asc')->select();
    foreach($list as $key=>$val){
    $layer=count(explode('-',$list[$key]['nsort']));
    $list[$key]['blank']='';
    for($i=0;$i<$layer;$i++){
    if($i==$layer-1){
    $list[$key]['blank'].='---|';
    }else{
    $list[$key]['blank'].='---';
    }
    }
    }
    $this->assign('list',$list);
    $this->display();
    }
    public function add(){
    $Column=new ColumnModel;
    $Column->create();
    if($Column->add()){
    $this->success('添加成功');
    }else{
    $this->error($Column->getError());
    }
    } 
    } 
    ?>

  3、模型


    <?php
    class ColumnModel extends Model{
    protected $_auto=array(
    array('name','trim',0,'function'),//过滤用户不小心输入的空白字符
    array('sort','createsort',0,'callback'),
    );
    /*
    *自动完成sort字段
    *根据POST过来的fid来查询上级sort,以确定本级sort
    */
    protected function createsort(){
    $fid=$_POST['fid']?(int)$_POST['fid']:0;//如果用户没有选择父栏目,则默认父栏目id为0
    if($fid!='0'){
    $list=$this->where("id=$fid")->find();
    $data=$list['sort'].'-'.$fid;
    }else{
    $data='0';
    }
    return $data;
    }
    }
    ?>

以上所述是小编给大家介绍的ThinkPHP的自动完成实现无限级分类实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例