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 を更新する必要があります...しかし、コントローラーでそれを行う方法は?