私が持っているコントローラで:
$paginator = Zend_Paginator::factory($mdlPost->getPosts($this->moduleData->accordion, 'name ASC'));
if(isset($params['cities'])) {
$paginator->setCurrentPageNumber(intval($params['cities']));
}
$paginator->setItemCountPerPage(4);
$this->view->posts = $paginator;
ビューには、次のようなものがあります。
if ($this->posts != null) {?>
<div id="cities_accord" class="news">
<?php echo $this->partialLoop('partials/post-min.phtml', $this->posts); ?>
</div>
<?php echo $this->paginationControl($this->posts,
'Sliding',
'public/pagination_cont.phtml');
}
partial/post-min.phtml
<?php
$color = array(1=>'spring',2=>'summer',3=>'autumn',4=>'winter');
?>
<div id='<?php echo $color[$this->partialCounter] ?>' class="accordion_post">
<?php
$link = Digitalus_Uri::get(false, false, array('openCity' =>
$this->id));//$color[$this->partialCounter]));
?>
<h1 class="accordion_post_title"><?php echo $this->title ?></h1>
<p><?php echo $this->teaser ?> <a href="<?php echo $link;?>"><i>read more</i></a></p>
</div>
このリンク zend ( http://framework.zend.com/manual/en/zend.paginator.usage.html ) から取得した pagination_cont.phtml は、コントローラーにパラメーターを渡して、対応するページ全体を取得するリンクを表示します。今のところ問題なく動作しています
しかし、私はこれを変更して、返された結果を ajax 化できるようにします (つまり、ページ全体をリロードするのではなく、単一のページ付けされた値のみ)。
** 編集: 可能であれば、javascript を無効にしたブラウザ (ユーザー) がページをリロードして同じことを表示できるようにする (つまり、if(javascript_not_enabled) の現在のステータスを維持する)**