本篇文章給大家帶來的內容是關於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]