繁体   English   中英

Magento Ajax静态块调用

[英]Magento Ajax Static Block Call

乡亲

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

<!-- 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的最简单的解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM