php – Joomla! 在後台添加表格排序
後台元件開發中,參考在 <table> 中的標題使用
JHtmlGrid::sort($title, $order, $direction = “asc”, $selected = 0, $task = null)
- title 要顯示給使用者看的名稱
- order 提交給 Server 要排序的欄位名稱,例如點擊 es_email 以後,下面提交為 [filter_order] => es_email [filter_order_Dir] => desc
- direction 目前顯示的狀態是 asc | desc
- selected 所選的排序,其實我不知道是幹嘛,所以填寫 0 ,如果知道的朋友歡迎留言給我
- $task 你要前往的任務,預設是同張頁面,我喜歡寫明確一點方便維護
1 2 3 4 5 6 7 |
<tr> <th><?=JHtmlGrid::sort('商店名稱', 'es_name', 'asc', 0, 'stores.index')?></th> <th><?=JHtmlGrid::sort('聯絡信箱', 'es_email', 'asc', 0, 'stores.index')?></th> <th></th> </tr> |
form 務必添加隱藏欄位 filter_order, filter_order_Dir 給 Joomla! 使用
1 2 3 4 5 6 7 8 9 |
<div class="hidden-inputs"> <input type="hidden" name="option" value="com_你的元件名稱"> <input type="hidden" name="task" value=""> <input name="filter_order" type="hidden" value=""> <input name="filter_order_Dir" type="hidden" value=""> </div> |
這樣按下標題以後,就會透過 Form 的 POST/GET 送出到指定的 task 。再配合 SQL 的 Order By 即可。
Nick
2018-05-20 - 16:16
現在Joomla後台已改用這種方式做排序了嗎? 記得之前是用 JHtml::_(‘grid.sort’ …. 。
另外 PHP short tag 建議少用
JSN
2018-05-21 - 10:26
JHtml::_(‘grid.sort… 這兩個好像是通用的。我搜尋一下內部的檔案,似乎都改用了 JHtml::_(‘grid.sort’~ 我上面那個可能是舊的寫法XD
我上面查到的是 Joomla! 官方提供的 API,但是沒有其他描述到底建議使用哪一個,覺得他們文件很多寫的不齊全XDDD
[https://docs.joomla.org/API17:JHtmlGrid::sort]
「=""」這個形式記得從 5.4 開發人員投票時,預設從不鼓勵改為鼓勵使用了;「< ?」的話仍然維持預設關閉 可以參考官網 http://php.net/manual/en/language.basic-syntax.phptags.php