thinkphp框架無限級欄目的排序功能實現(xiàn)方法示例
本文實例講述了thinkphp框架無限級欄目的排序功能實現(xiàn)方法。分享給大家供大家參考,具體如下:
題目中我們并沒有說明是tp5的無限級排序還是tp3的無限級排序就是為了讓小新手們明白,這些功能的實現(xiàn)跟你使用的框架是沒有關(guān)系的,不管你是tp5還是tp3還是laravel還是yii框架都沒有關(guān)系,我們強調(diào)的是思路,是解決問題的方法,演示的時候因為我在用tp3所以無所謂了。
無限級欄目的排序非常簡單,這次以博文的方式分享給大家解決的思路。
上圖:

上圖是我們實現(xiàn)的無限級分類,我們要注意兩個字段,id和排序sort字段,目前sort字段的值都是50,是默認值。接著為大家截圖數(shù)據(jù)表結(jié)構(gòu)

上圖sort用來實現(xiàn)排序pid用來實現(xiàn)無限級分類
實現(xiàn)無限級分類的關(guān)鍵是我們對排序字段的寫法,我們把整塊代碼拿到,但是用到的只有一行:
<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=" rel="external nofollow" btn btn-primary btn-sm shiny">
<i class="fa fa-edit"></i> 編輯
</a>
<a href="#" rel="external nofollow" 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包裹的,因為我們要提交排序字段,所以需要表單。
我們實現(xiàn)無限極欄目排序的核心代碼:
<input type="text" name="sort[{$cate.id}]" value="{$cate.sort}" />
就是這一句,實際上我們是拼裝了一個sort[]數(shù)組,整個數(shù)組的每個元素的鍵是當前欄目的id而值是當前欄目的排序的值,這樣我們一旦提交數(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();//無限級分類樹
$this->assign([
'cateRes'=>$cateRes,
]);
$this->display('list');
}
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
相關(guān)文章
PHP url的pathinfo模式加載不同控制器的簡單實現(xiàn)
下面小編就為大家?guī)硪黄狿HP url的pathinfo模式加載不同控制器的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
php calender(日歷)二個版本代碼示例(解決2038問題)
一個簡單的php Calender(日歷),解決了2038問題,這樣在32位機和64位機上都可以用了,代碼很簡單,方便修改2013-12-12
深入mysql_fetch_row()與mysql_fetch_array()的區(qū)別詳解
本篇文章是對mysql_fetch_row()與mysql_fetch_array()的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP isset()與empty()的使用區(qū)別詳解
本文主要介紹了PHP isset()與empty()的使用區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02

