0

数日前から疑問です。うまく説明したいと思っています。私の英語で申し訳ありません。

私はCakePHPで作業していますが、独自のビューなどを備えたコントローラーがいくつかあります.何が起こるか:コントローラーには2つの関数があり、1つの要素(この場合はgoogle)をマウスでクリックすると、それが必要になります私のビュー「ONE」のチャート円グラフ)、ビューONEから(ビュー「TWO」をレンダリングする)コントローラーの他の機能を実行したいのですが、同じページで。

円グラフのクリックを処理する方法は知っていますが、これは問題ではありません。問題は、クリックを処理して他のビュー 2 に移動するときに、ビュー 1 を表示したままにする方法です。つまり、最終的には、1 と 2 の 2 つのビューを持つページのデフォルトが必要です。それぞれがコントローラーで独自の機能を持ち、テキストやテーブルのような単純なビューではありません...

requestaction、javascriptのhref、ヘルパーなど、いくつかの解決策を試しましたが、解決策がわかりません。

あなたが私を助けることができれば、私はとても感謝しています! 質問があれば、よく説明して、私の英語を理解してくれることを願っています!

ご挨拶!

4

1 に答える 1

1

それを行う唯一の方法は、ビューの1つで要素を作成し、この要素を他のビューに追加することです。を使用して、ビューに要素を簡単に追加できます$his->element('ElementName');。Cakephp の要素の詳細については、http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Views.htmlを参照してください。

div に入れ$this->element('name');て ajax を使用すると、私が推測する関数を呼び出している可能性があります。したがって、コントローラー関数で次のように記述します。

$this->set('set your variables for the elements here');
$view = new View($this, false);
$content = $view->element('my-element');
json_encode($content);

ajax呼び出しの成功部分でこの応答をキャッチします。

success: function (data){
    $("#div_id").html(data);
}

それが理にかなっていることを願っています。

于 2013-04-30T12:19:31.937 に答える