cakephp addCrumb Html Helper

时间:2013-02-15 17:31:26

标签: php jquery ajax cakephp cakephp-1.3

我正在尝试在Cake php应用程序中使用Html Helper的breadcrumb功能来创建面包屑跟踪。我按照他们说的方式在手册上进行操作(一直滚动到底部看它),但我遇到的问题是,当通过Ajax加载视图时(通过使用jquery的.load()函数)例如),我的面包屑没有显示。我把它放在我看来:

<?php echo $this->Html->addCrumb('Users', '/users'); ?>

这在我的布局中:

<?php echo $this->Html->getCrumbs(' >> ', 'Home'); ?>

但没有显示任何内容。当视图没有通过Ajax加载时,一切都很好。有人可以告诉我为什么会这样吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以再次在视图中输出面包屑,隐藏,然后在.load()将它们附加到布局中的面包屑后。否则你将无法做到。如果您使用load()注入内容,“布局”面包屑已经呈现并且不会再次呈现。

一些示例代码可以让您了解我是如何做到的:

// layout
echo '<div class="crumbs">' . $this->Html->getCrumbs() . '</div>';
echo '<div class="content"><!-- AJAX content goes here--></div>';

// view
$this->Html->addCrumb('My Page');
echo '<div class="hiddenCrumbTrail">' . $this->Html->getCrumbs() . '</div>';
echo 'Here is my page content';

// js
$(function() { 
    $('.content').load('/controller/action'); // load content
    $('.crumbs').empty(); // remove existing
    $('.crumbs').append($('.hiddenCrumbTrail')); // append with updated
});