0

我有使用 3 个元素的视图书籍/浏览(这些元素不使用任何 requestAction,它们仅依赖于书籍/浏览控制器中设置的变量。每个元素都包含在具有此元素 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 的适当内容刷新

现在我想在单个请求中更新单独 div 中的 2 个元素。所以也许有选项可以传递给应该更新的链接 2 个 div - 但是如何使用控制器来渲染这 2 个 div 中的两个元素?

- 编辑

这样做的目的是省略刷新页面上的一个元素,因为它的数据库查询和呈现很慢,而且它不会改变......

- 编辑

好的,我有一个关于如何做到这一点的想法 - 在控制器中,我必须渲染两个元素并将这些元素返回的 html 保存在两个变量中,然后返回 ajax 数据,比如一些包含这些元素 html 的 2 个变量的数组。然后我必须使用JS来更新两个div......但是如何在控制器中做到这一点?

4

0 回答 0