我在前端和后端都使用了相同的代码(下面),但是分页在管理端不起作用。
==================== MODEL = PART ======================== ===
defined('_JEXEC') or die;
jimport('joomla.application.component.modellist');
class CiieModelOrders extends JModelList
{
public function getItems()
{
// Invoke the parent getItems method to get the main list
$items = parent::getItems();
return $items;
}
protected function getListQuery()
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('title');
$query->from('q2b7v_menu');
return $query;
}
}
==================== VIEW = PART ======================== ===
defined('_JEXEC') or die;
jimport('joomla.application.component.view');
class CiieViewOrders extends JView {
protected $state;
protected $item;
protected $form;
protected $params;
public function display($tpl = null) {
$items = $this->get('Items');
$pagination = $this->get('Pagination');
$this->items = $items;
$this->pagination = $pagination;
parent::display($tpl);
}
}
================== TEMPLATE = PART ========================= < / p>
<?php
JHtml::_('behavior.keepalive');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
//Load admin language file
$lang = JFactory::getLanguage();
$lang->load('com_ciie', JPATH_ADMINISTRATOR);
?>
<div>
<table>
<?php
foreach($this->items as $item){
echo "<tr><td>".$item->title."</td></tr>";
}
?>
</table>
<?php echo $this->pagination->getListFooter(); ?>
</div>
这在前端(站点侧)工作正常。
会话输出 - &gt; [orders] => stdClass Object ( [ordercol] => [limitstart] => 0 )
链接html / url(用于下一个按钮) - &gt; <a title="Next" href="/NewJoomla/index.php/component/ciie/?view=other&start=20" class="pagenav">Next</a>
我在Admin端(后端)放了相同的代码,它显示了所有的paginatiion按钮和所有内容。但按钮根本不起作用。他们简单地把我带到页面顶部。当我检查链接时(例如“下一步”按钮),我看到了:
<a href="#" title="Next" onclick="document.adminForm.limitstart.value=20; Joomla.submitform();return false;">Next</a>
(如您所见,href属性值为空(#)。)
会话输出 - &gt; [orders] => stdClass Object ( [ordercol] => )
(此处也'limitstart'值根本不存在。
我在不同的新Joomla装置中尝试了这个,但同样的问题又重复了。
我有什么遗漏的吗?
答案 0 :(得分:2)
最后我把它整理出来了! 这是一个愚蠢的错误!
在模板中,我没有将列表内容放在<form>
标记内。 getListFooter()函数显示分页按钮,但单击时,动作不会在任何地方提交。我更正了如下所示的代码并且有效。
========== TEMPLATE = PART ====================
...
<div>
<form action="<?php echo JRoute::_('index.php?option=com_ciie&view=orders'); ?>" method="post" name="adminForm">
<table>
<?php
foreach($this->items as $item){
echo "<tr><td>".$item->title."</td></tr>";
}
?>
</table>
<?php echo $this->pagination->getListFooter(); ?>
</form>
</div>
谢谢大家。