动态更改zend paginator的结果

时间:2011-12-29 03:14:28

标签: php zend-framework pagination zend-paginator

过去两天,我对Zend的分页器问题感到震惊。

我的HTML方面

我有一个带有4个复选框的表单,点击任何这些复选框,表单将使用jquery提交并基于该值Zend paginator结果将出现我的问题是如何在分页链接时提交表单(1 2 3 .. )因为它是一个网址

<form name="frm_submit" id="frm_submit" action="" method="post">
<input type="text" name="search" id="search" />
    <input type="checkbox" name="opt1" id="opt1" />
    <input type="checkbox" name="opt2" id="opt2" />
    <input type="checkbox" name="opt3" id="opt3" />
    <input type="checkbox" name="opt4" id="opt4" />
</form>

/**Controller/Action**/
 $searchdata = $this->someFun($checkboxval,$searchtextboxval); //A function returning some data based on the checkbox value
 $paginator = Zend_Paginator::factory($searchdata);
 $paginator->setItemCountPerPage(10);
 $paginator->setCurrentPageNumber($page);
 $this->view->paginator = $paginator;

问题是当用户点击分页链接时,我无法获得服务器端的复选框值(例如1 2 3 Next。)?我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

1)将属性value添加到输入复选框,其中包含您要显示的页数,即:

<input type="checkbox" name="opt1" id="opt1" value="1" />

2)将点击的复选框的值添加到URL作为参数:

URL?page=1

3)在控制器操作中检索页面参数并将其传递给分页器:

$params = $this->getRequest()->getParams();
if (isset($params['page'])) 
    $page = $params['page'];
else 
    $page = 1;
$paginator->setCurrentPageNumber($page);