這篇文章帶給大家的內容是關於thinkphp中無限欄目的排序實現程式碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
主題中我們並沒有說明是tp5的無限排序還是tp3的無限排序就是為了讓小新手們明白,這些功能的實現跟你使用的框架是沒有關係的,不管你是tp5還是tp3還是laravel還是yii框架都沒關係,我們強調的是思路,是解決問題的方法,演示的時候因為我在用tp3所以無所謂了。
無限級欄目的排序非常簡單,我們多次講解過,這次以博文的方式分享給大家解決的思路。
上圖:
上圖是我們實現的無限級分類,我們要注意兩個字段,id和排序sort字段,目前sort字段的值都是50,是預設值。接著為大家截圖資料表結構
上圖sort用來實現排序pid用來實現無限級分類
實現無限級分類的關鍵是我們排序字段的寫法,我們把整塊程式碼拿到,但是用到的只有一行:
[php] <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> [/php]
上面的程式碼我們可以看出整個table是用form包裹的,因為我們要提交排序字段,所以需要表單。
我們實作無限極欄位排序的核心程式碼:
[php] <input type="text" name="sort[{$cate.id}]" value="{$cate.sort}" /> [/php]
就是這一句,實際上我們是拼裝了一個sort[]數組,整個數組的每個元素的鍵是當前欄目的id而值是目前欄目的排序的值,這樣我們一旦提交數組就可以根據id修改sort了
完整程式碼:
[php] 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’); } [/php]
相關推薦:
thinkphp5中截取字串的方法有哪些? (兩種方法實作)
以上是thinkphp中無限欄目的排序實作程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!