Magento Ajax 静态块调用



伙计们。

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

<!-- 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>

虽然这实际上不是我所需要的。因为该部分内的内容需要是一个 CMS 静态块,并且会有多个静态块要加载,根据用户单击的页脚链接(我试图做的是对页脚链接进行 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);

任何帮助将不胜感激。

您必须将静态块加载到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加载

最新更新