0

Cakephp 2.2.2 を使用しており、単純な ajax ページネーションを作成したいと考えています。私はこれ(http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#ajax-pagination)に従っていますが、正しく機能していないようです。ページをロードすると、ajax が使用される場合と使用されない場合があります。

これが私がしたことです:

  1. 私のレイアウトファイルのecho $this->Html->script('jquery');中に入れてください。<head>
  2. コントローラーに RequestHandler コンポーネントと Js ヘルパーを含めました。
  3. これを私のビューファイルの先頭に入れます:

    $this->Paginator->options(array( 'update' => '#content', 'evalScripts' => true ));

  4. これをレイアウトファイルの一番下の直前に置きます</body>echo $this->Js->writeBuffer();

  5. 次に、通常、次のようにページネーターを使用しました。

    echo $this->Paginator->sort('id');

何が間違っているのか本当にわからないので、誰かが私に何かが欠けているのか、それとも何が間違っているのか教えてもらえますか. どうもありがとう。

4

2 に答える 2

2

ページネーションのajaxでも同じ問題がありました。

一時的な解決策を見つけました。コントローラー関数で、フラグ変数を設定する次のコードを追加します。

 if($this->request->is('ajax')){
        $this->set('paginate',true);
    }

次に、ビューで #content div 以外のセクションを非表示にする必要があります。

<?php if(!isset($paginate)):
    // Code above # content div including the start of div
endif:?>

Pagination code inside the content div

<?php if(!isset($paginate)):
    // Code below # content div including content of div
endif:?>

PSロジックは、ページネーションが完了すると、他の部分はページビューに表示されないということです。

于 2013-04-07T09:54:32.863 に答える
0

このコードをviewファイルから次の場所に移動するだけですlayout:

$this->Paginator->options(array( 'update' => '#content', 'evalScripts' => true ));
于 2014-10-08T11:34:03.593 に答える