thinkphp框架無(wú)限級(jí)欄目的排序功能實(shí)現(xiàn)方法示例
本文實(shí)例講述了thinkphp框架無(wú)限級(jí)欄目的排序功能實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
題目中我們并沒(méi)有說(shuō)明是tp5的無(wú)限級(jí)排序還是tp3的無(wú)限級(jí)排序就是為了讓小新手們明白,這些功能的實(shí)現(xiàn)跟你使用的框架是沒(méi)有關(guān)系的,不管你是tp5還是tp3還是laravel還是yii框架都沒(méi)有關(guān)系,我們強(qiáng)調(diào)的是思路,是解決問(wèn)題的方法,演示的時(shí)候因?yàn)槲以谟胻p3所以無(wú)所謂了。
無(wú)限級(jí)欄目的排序非常簡(jiǎn)單,這次以博文的方式分享給大家解決的思路。
上圖:
上圖是我們實(shí)現(xiàn)的無(wú)限級(jí)分類(lèi),我們要注意兩個(gè)字段,id和排序sort字段,目前sort字段的值都是50,是默認(rèn)值。接著為大家截圖數(shù)據(jù)表結(jié)構(gòu)
上圖sort用來(lái)實(shí)現(xiàn)排序pid用來(lái)實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)
實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)的關(guān)鍵是我們對(duì)排序字段的寫(xiě)法,我們把整塊代碼拿到,但是用到的只有一行:
<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>欄目名稱(chēng)</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=" rel="external nofollow" btn btn-primary btn-sm shiny"> <i class="fa fa-edit"></i> 編輯 </a> <a href="#" rel="external nofollow" onClick="warning('確實(shí)要?jiǎng)h除嗎', ”)" 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>
上面的代碼我們可以看出整個(gè)table是用form包裹的,因?yàn)槲覀円峤慌判蜃侄?,所以需要表單?/p>
我們實(shí)現(xiàn)無(wú)限極欄目排序的核心代碼:
<input type="text" name="sort[{$cate.id}]" value="{$cate.sort}" />
就是這一句,實(shí)際上我們是拼裝了一個(gè)sort[]數(shù)組,整個(gè)數(shù)組的每個(gè)元素的鍵是當(dāng)前欄目的id而值是當(dāng)前欄目的排序的值,這樣我們一旦提交數(shù)組就可以根據(jù)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();//無(wú)限級(jí)分類(lèi)樹(shù) $this->assign([ 'cateRes'=>$cateRes, ]); $this->display('list'); }
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP url的pathinfo模式加載不同控制器的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇PHP url的pathinfo模式加載不同控制器的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08php calender(日歷)二個(gè)版本代碼示例(解決2038問(wèn)題)
一個(gè)簡(jiǎn)單的php Calender(日歷),解決了2038問(wèn)題,這樣在32位機(jī)和64位機(jī)上都可以用了,代碼很簡(jiǎn)單,方便修改2013-12-12Thinkphp 框架配置操作之配置加載與讀取配置實(shí)例分析
這篇文章主要介紹了Thinkphp 框架配置操作之配置加載與讀取配置,結(jié)合實(shí)例形式分析了Thinkphp 框架配置操作中配置加載原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-05-05深入mysql_fetch_row()與mysql_fetch_array()的區(qū)別詳解
本篇文章是對(duì)mysql_fetch_row()與mysql_fetch_array()的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP isset()與empty()的使用區(qū)別詳解
本文主要介紹了PHP isset()與empty()的使用區(qū)別。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02PHP基礎(chǔ)學(xué)習(xí)之流程控制的實(shí)現(xiàn)分析
本篇文章介紹了,PHP基礎(chǔ)學(xué)習(xí)之流程控制的實(shí)現(xiàn)分析。需要的朋友參考下2013-04-04