欢迎您光临买源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点,服务永无止境!

实现thinkphp无限级栏目的排序

题目中我们并没有说明是tp5的无限级排序还是tp3的无限级排序就是为了让小新手们明白,这些功能的实现跟你使用的框架是没有关系的,不管你是tp5还是tp3还是laravel还是yii框架都没有关系,我们强调的是思路,是解决问题的方法,演示的时候因为我在用tp3所以无所谓了。

无限级栏目的排序非常简单,我们也在博客中的文章教程当中多次讲解过,这次以博文的方式分享给大家解决的思路。

上图:

上图是我们实现的无限级分类,我们要注意两个字段,id和排序sort字段,目前sort字段的值都是50,是默认值。接着为大家截图数据表结构,

上免的sort用来实现排序pid用来实现无限级分类

实现无限级分类的关键是我们对排序字段的写法,我们把整块代码拿到,但是用到的只有一行:

<form method="post" action="">
    <table class="table table-bordered table-hover">
    <thead class="">
    <tr>
        <th width="6%" class="text-center">
            ID
        </th>
        <th width="6%" class="text-center">
            pid
        </th>
        <th width="8%" class="text-center">
            排序
        </th>
        <th>
            栏目名称
        </th>
        <th width="16%" class="text-center">
            操作
        </th>
    </tr>
    </thead>
    <tbody>
    <volist name="cateRes" id="cate">
    <tr>
        <td align="center">
            {$cate.id}
        </td>
        <td align="center">
            {$cate.pid}
        </td>
        <td align="center">
            <input type="text" name="sort[{$cate.id}]" value="{$cate.sort}"/>
        </td>
        <td>
            <?php echo str_repeat(‘-‘, $cate[‘level’]*8);?>
            {$cate.cate_name}
        </td>
        <td align="center">
            <a href="" class="btn btn-primary btn-sm shiny">
            <i class="fa fa-edit"></i> 编辑
            </a>
            <a href="#" onclick="warning(‘确实要删除吗’, ”)" class="btn btn-danger btn-sm shiny">
            <i class="fa fa-trash-o"></i> 删除
            </a>
        </td>
    </tr>
    </volist>
    <tr>
        <td colspan="4">
            <button type="button" tooltip="排序" style="margin-left:225px; width:50px;" class="btn btn-sm btn-azure btn-addon">排序</button>
        </td>
    </tr>
    </tbody>
    </table>
</form>

上面的代码我们可以看出整个table是用form包裹的,因为我们要提交排序字段,所以需要表单。

我们实现无限极栏目排序的核心代码:

<input type="text" name="sort[{$cate.id}]" value="{$cate.sort}" />

就是这一句,实际上我们是拼装了一个sort[]数组,整个数组的每个元素的键是当前栏目的id而值是当前栏目的排序的值,这样我们一旦提交数组就可以根据id修改sort了

完整代码:

public function lst(){
    $cate=D('Cate');
    
    if(IS_POST){//排序
    
    $data=I('sort');
    
    foreach ($data as $k => $v) {
        
        $cate->where(array('id'=>$k))->save(['sort'=>$v]);
    
    }
    return;
    
    }
    $cateRes=$cate->cateTree();//无限级分类树
    
    $this->assign([
    
        'cateRes'=>$cateRes,
    
    ]);
    
    $this->display('list');
}

 

免责声明:
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

买源码 » 实现thinkphp无限级栏目的排序

发表评论