0

伙计们。

我一直在寻找解决方案,但我得到的只是我需要的一些片段。我正在尝试在页脚上显示一些额外的内容。单击页脚链接时将显示此内容。我可以使用以下代码轻松做到这一点:

<!-- TRIGGER -->
<li><a href="javascript:void(0);" onclick="return abreInfo();">Sobre</a></li>

<!-- CONTAINER -->
<div id="infoShow">
    <section> ... </section>
</div>

<!-- SCRIPT -->
<script type="text/javascript">

function abreInfo(id) {
    jQuery("#infoShow").slideDown('fast', function () {
        jQuery('html,body').animate({ scrollTop: jQuery("#infoShow").offset().top -54 }, 200);
    });
}
</script>

虽然这实际上不是我需要的。因为section里面的内容需要是一个CMS Static Block,并且会加载不止一个Static Block,根据用户点击的页脚链接(我正在尝试做的是对页脚链接的AJAX调用,例如“关于”、“付款方式”、“送货信息”等)。不幸的是,知识使我想到了这种脚本:

function abreInfo(id) {
    jQuery("#infoShow").slideDown('fast', function () {
        jQuery('html,body').animate({ scrollTop: jQuery("#infoShow").offset().top -54 }, 200);
            jQuery("#infoShow>section").load("<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('" + id + "')->toHtml() ?>", function () { 
        });
    });
}

但是,如您所见,我在 javascript 中使用了 php echo,禁用了所有脚本。我无法解决的是一种通过单击“a”元素并将其打印在 javascript 函数上来获取 CMS 静态块 ID 的方法。

在网上看,我发现了一个可能有帮助的代码,但我不太确定如何处理:

$block_identifier = $_GET['id'];
$block = Mage::app()->getLayout()->createBlock('cms/block')->setBlockId($block_identifier);

任何帮助将不胜感激。

4

1 回答 1

0

您必须将静态块加载到将被隐藏的 div 中,然后单击页脚链接后您必须显示 div。例如

<div id="hiddenBlock" style="display:hidden">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('static_block_id')->toHtml() ?>
</div>
<div>
<a href="#" onclick="showBlock()">show block</a>
</div>

和js函数

function showBlock() {
 jQuery('#hiddenBlock').show();
}

类似的东西,这是没有 Ajax 加载的最简单的解决方案

于 2013-09-12T16:55:25.190 回答