1

過去 2 日間、Zend ページネーターの問題に悩まされています。

私のHTML側

これらのチェックボックスのいずれかをクリックすると、フォームがjqueryを使用して送信し、その値に基づいてZend paginatorの結果が発生する4つのチェックボックスを備えたフォームがあります。 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 次) をクリックしたときに、サーバー側でチェックボックスの値を取得できないことです。これどうやってするの ?

4

1 に答える 1

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);
于 2011-12-29T07:55:43.600 に答える