簡體   English   中英

如何使Joomla表可排序?

[英]How to make a Joomla Table sortable?

在我的Joomla Web應用程序中添加了以下PHP代碼。 這將創建一個用戶組中所有用戶

如何使該表可排序?

是否有一些Joomla / PHP代碼或插件可以按名稱排序此列表? 我可以添加參數以按任何列對它進行排序嗎?

<?php
$teachers = JAccess::getUsersByGroup(10); //change number in the brackets

echo "<table class=\"table table-striped\">";
echo "<thead>";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Street</th>";
echo "<th>Zip</th>";
echo "<th>City</th>";
echo "<th>Phone</th>";
echo "<th>Email</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";
foreach($teachers as $user_id) {
    $user = JFactory::getUser($user_id);
    $profile = JUserHelper::getProfile($user->id);
    echo "<tr>";
    echo "<td>".$user->name."</td>";
    echo "<td>".$profile->profile['address1']."</td>";
    echo "<td>".$profile->profile['postal_code']."</td>";
    echo "<td>".$profile->profile['city']."</td>";
    echo "<td>".$profile->profile['phone']."</td>";
    echo "<td>".$user->email."</td>";
    echo "</tr>";
}
echo "</tbody>";
echo "</table>";
?>

例如,如果您希望它使標題可排序,則使用類似下面的代碼來添加表頭

  <?php echo JHTML::_('grid.sort', JText::_('TITLE'),  'title',
  $this->lists['order_Dir'],   $this->lists['order'] ); ?>

並在模式中使用以下函數在SQL中構建where子句。

  getUserStateFromRequest(
  $option.'filter_order_Dir', 'filter_order_Dir', 'ASC'));

上述功能將根據用戶選擇返回ASC或DSC

JHTML和JHTMLGRID是用於構建交互式表的有用類

詳情頁279

我認為最簡單的方法是使用jquery或使用jquery插件。 您可以使用DataTablesTablesorter ,它們是將具有該功能的jquery插件。

我假設您希望表在客戶端可排序,這意味着您將需要一些Javascript代碼。 有一些jquery庫可以做到這一點(例如DataTables),但也有Joomla特定擴展確實可以做到這一點,例如http://www.tabulizer.com上的Tabulizer for Joomla,它具有許多排序選項,另外還要避免使用任何jQuery與其他擴展名沖突。 這是一個排序演示http://www.tabulizer.com/index.php/support-menu/tabulizer-tips/63-sort-second-row

您還可以使用直接為Joomla開發的插件Szaki Table (當前可用於J!2.5和J!3.x)。 檢查一下,它是功能強大且高度可定制的工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM