Динамически меняя результат работы зенд-пагинатора - PullRequest
1 голос
/ 29 декабря 2011

Я столкнулся с проблемой Zend paginator за последние два дня.

Моя html сторона

У меня есть форма с 4 флажками при нажатии на любой изэти флажки форма будет отправлять, используя jquery и основываясь на этом значении, результат Zend paginator будет возникать. Мой вопрос: Как я могу отправить форму при ссылках на страницы (1 2 3 ..), так как это URL

<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 Далее.)?Как я могу это сделать?

1 Ответ

1 голос
/ 29 декабря 2011

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);
...