0

3つの要素を使用するbooks/browseを表示しています(これらの要素はrequestActionを使用せず、books/browseコントローラーに設定された変数に依存するだけです。各要素は、この要素のIDを持つ個別のdivで囲まれています。 ajax 2 of 3 要素で更新されるリンク. 今のところ、次のようなものがあります (これは本/閲覧ビューにあります):

echo $this->Js->link('Page 2', array('page' => 2), array('update' => '#element_id'));

そして私が持っている本/ブラウズコントローラーで:

 ...
            $this->set('books', $books);    
            $this->set('author_keywords',$author_keywords);
            $this->set('title_keywords',$title_keywords);
            $this->set('languages',$languages);
            $this->set('language_id',$language_id);
            $this->set('limit',$limit); 
            $this->set('category_id',$category_id);

            if ($this->RequestHandler->isAjax()) 
            {
                 $this->autoRender = false;
                 $this->layout = 'ajax';
                 $this->render('/elements/element1');
            }
            return;

そして、これは正常に機能し、div 'element_id' の要素は、elements/element1 の適切なコンテンツで更新されます

ここで、1 つのリクエストで別々の div の 2 つの要素を更新したいと考えています。したがって、更新する必要がある2つのdivをリンクするために渡すオプションがあるかもしれませんが、コントローラーを使用してこれらの2つのdivで2つの要素をレンダリングするにはどうすればよいですか?

- 編集

これの目的は、データベース クエリとレンダリングが遅く、変更されないため、ページ上の 1 つの要素の更新を省略することです...

- 編集

さて、私はそれを行う方法についての考えを持っています - コントローラーでは、2 つの要素をレンダリングし、それらの要素によって返された html を 2 つの変数に保存し、それらの要素 html を含む 2 つの変数を持つ配列のような ajax データを返す必要があります。次に、JS を使用して 2 つの div を更新する必要があります...しかし、コントローラーでそれを行う方法は?

4

0 に答える 0