首先,我必须为我对这个问题缺乏了解而道歉。我还是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);
});
答案 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)
加载布局通常包含默认句柄,所以我的猜测是你的作业无效,因为已经加载了根音符。尝试先删除根节点,然后将其添加回作为唯一节点。