我有使用3个元素的查看书籍/浏览(这些元素不使用任何requestAction,它们只依赖于books / browse控制器中设置的变量。每个元素都包含在具有此元素id的单独div中。现在我想要一个链接,用3个元素的ajax 2刷新。现在我有这样的东西(这是在书籍/浏览视图中):
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'中的元素用适当的元素内容刷新/ element1
现在我想在单个请求中更新单独div中的2个元素。所以也许可以选择传递给应该更新的链接2个div - 但是如何使用控制器在这2个div中渲染两个元素?
- 修改
这样做的目的是省略刷新页面上的一个元素,因为它的数据库查询和渲染很慢,而且它没有改变......
- 编辑
好吧我知道怎么做 - 在控制器中我必须渲染两个元素并将这些元素返回的html保存在两个变量中,然后返回ajax数据,就像一些包含那些元素html的变量的数组一样。然后我必须使用JS更新两个div ...但是如何在控制器中执行它?