Magento:从Ajax调用模板时渲染空白页面

时间:2011-02-22 21:26:16

标签: php zend-framework magento

首先,我必须为我对这个问题缺乏了解而道歉。我还是Magento的新手,根据我遇到的信息,我应该能够让这个工作。我开始了here。我能够使用Ajax方法进行调用,但是我得到一个空白的2column-left.phtml作为我的输出(所以我看到了标题,左列,空白主列和页脚)。我的文件设置如下:

app / local / MyModule / Featured / Block / Featured.php

<?php  
class MyModule_Featured_Block_Featured extends Mage_Core_Block_Template  
{  
    public function __construct()  
    {  
        $this->_controller = 'featured';  
        $this->_blockGroup = 'featured';  
        parent::__construct();  
    }  
}  
?>

app / local / MyModule / Featured / controllers / FeaturedController.php

<?php 
class MyModule_Featured_FeaturedController extends Mage_Core_Controller_Front_Action
{
    public function displayAction()
    {
        $this->loadLayout()->renderLayout();
    }
}
?> 

app / local / MyModule / Featured / etc / config.xml

<config>
    <modules>
        <MyModule_Featured>
            <version>0.1.0</version>
        </MyModule_Featured>
    </modules>
    <frontend>
        <routers>
            <featured>
                <use>standard</use>
                <args>
                    <module>MyModule_Featured</module>
                    <frontName>featured</frontName>
                </args>
            </featured>
        </routers>
    </frontend>
</config>

app / design / frontend / default / myLayout / layout / local.xml

<config>
    <featured_featured_display>
        <block type="module/block" name="root" output="toHtml" template="catalog/product/featured.phtml" />
    </featured_featured_display>
</config>

主页自定义phtml上的Ajax代码:

var url = "<?php echo $this->getUrl('featured/featured/display') ;?>";
jQuery(document).ready(function() {
    jQuery('#featured-products').load(url);
});

2 个答案:

答案 0 :(得分:4)

我认为布局文件的根节点应该是<layout>而不是<config>

<子> P.S。
如果你想没有jQuery - 为了避免臃肿 - Magento已经有Prototype作为标准,可以完全相同。

var url = "<?php echo $this->getUrl('featured/featured/display') ?>";
document.observer('dom:loaded', function(){
    new Ajax.Updater('featured-products', url);
});

答案 1 :(得分:0)

加载布局通常包含默认句柄,所以我的猜测是你的作业无效,因为已经加载了根音符。尝试先删除根节点,然后将其添加回作为唯一节点。