2012-05-02 26 views
2

私はcakePHPを使用していますが、別のページをクリックすると、ページ変数を渡すようになっています。私は返された結果をフィルタリングするさまざまな検索入力セレクタを持っています。これは最初のビューで機能しますが、別のページをクリックするとすべての結果が表示されます。cakePHP paginatorが通過しない

私は私のページネータのために以下の設定があります。それはpassedArgsを使用することをお勧めします、しかし、私は私の理解から :

<div class="paging"> 
<?php 
    echo $this->Paginator->prev('< ' . __('previous'), array(), null, array('class' => 'prev disabled')); 
    echo $this->Paginator->numbers(array('separator' => '')); 
    echo $this->Paginator->next(__('next') . ' >', array(), null, array('class' => 'next disabled')); 
?> 
</div> 

はEDIT:私のビューファイルで

// In my controller class: 
public $paginate = array('maxLimit' => 10, 'paramType' => 'querystring'); 

// Within my action method: 
$this->paginate = array('conditions' => array(...), 
         order => array('Model.field ASC'), 
         'limit' => 20 
); 

// Calling the paginator: 
$results = $this->paginate('Model'); 
$this->set(compact('results')); 

をこれをどうやって行うのかについて少し不明です。 My $ this-> passedArgsは結果を返しません。したがって、コントローラのサンプル内で渡されたパラメータを作成しています。 Postに取得から私も自分のフォームを変更:これは、ページネーションストリップに正しくpassedArgsを渡し

$this->passedArgs["searchfield"] = $_POST["value"]; 

が、私は今、ページング条件の配列を作成する方法に関してわからないと思います。ほとんどの場合、ユーザーはデフォルト値の例を選択しません。フィルターの1つは日付と日付、そして検索入力ボックスです。日付を残すと、依然としてアルファムが作成され、結果は返されません。

http://localhost/site/controller/action/page:3/datefrom:0/dateto:0/searchFor:survey 

何か支援がありますか?

答えて

2

あなたが持つビュー内のすべてのパラメータで渡すことができます。

$this->Paginator->options(array('url' => $this->passedArgs)); 

または手動でのparamsを割り当てる:

$this->Paginator->options(array('url' => array("0", "1"))); 

をページネータ

更なる例についてCakePHP Cookbookを参照してくださいをエコーbefor

+0

こんにちは@ Nebel54、ありがとうございます。私は問題を発見したと思う、それは私のフィルタフォーム、または検索フォームは、私の$ this-> passedArgsが空であるようにGETに値をポストしているだけです。あなたはおそらく私がpassedArgsをどのように構築したかを示すことができますか? – mauzilla

+0

getパラメータの外観を投稿できますか?/param1:true/param2 = name&like /?param1 = true&param2 = name – Nebel54

+0

これは/ param1:value/param2:valueですが、すべてのパラメータが常に値を持つわけではないので、param1:0/param2:possiblevalue /クエリを中断する可能性があります – mauzilla

関連する問題