Ajax方法呈现多个元素

时间:2017-02-03 16:37:00

标签: php cakephp-3.0

我有一个ajax方法,它接受标签的id数组并进行一些处理以确保标签尚未使用。然后我需要将HTML发送回客户端,以便我可以使用javascript渲染标记。只需一个标签,调用

就相当简单
$this->render('/Element/tag');
来自控制器的

,因为'render'生成的响应的主体将包含元素的html。如何将我的标签数组转换为每个元素并将其发送回客户端?

1 个答案:

答案 0 :(得分:0)

您只能拨打render一次 - 将其视为仅指示哪个"查看"您希望在Controller代码的末尾使用。

如果您需要一个呈现多个标记的视图,您只需定义一个新视图,例如/src/Template/Tags/tags.ctp

您可以将任何想要的内容传递给您的视图(Tags/tags.ctp文件),包括一系列标记:

$tags = ['Tag 1', 'Tag 2'];

$this->set('tags', $tags);

$this->render('Tags/tags');

然后在tags.ctp内,使用标签元素渲染每一个:

<?php foreach ($tags as $tag) {
    echo $this->element('tags',  [
        "tag" => $tag
    ]);
}