当前位置: 首页 > 面试题库 >

magento中的Ajax(加载产品视图块)

子车心思
2023-03-14
问题内容

我要实现的目标:单击产品链接/图像(至少在某些区域)以打开一个弹出窗口,其中包含完整的产品信息(基本上是产品查看页面的所有内容)。

到目前为止,我做了/尝试过的是:

  • 在ajax php代码之外创建了所有东西(模块,链接,模板,重写)
  • 创建了ajax控制器(可以通过类似于的链接进行访问http://test.com/index.php/ajaxproductview/ajax/index/id/2)。
  • 遵循各种教程(例如this或this)-有助于我走到这一步。但是我不想加载我的自定义块,我想要默认的产品视图块。
  • 试图在indexAction()中添加一些代码。它到达那里,但是代码失败。我没有收到任何错误/通知/报告,就像死循环一样,它杀死了我的处理器。
    $body = $this
    ->getLayout()
    ->createBlock('product.info') // taken from catalog.xml
    ->toHtml();
    

    $this->getResponse()->setBody($body);

所有其他页面都工作正常,这是一个全新的magento,仅包含磁电机,并且已安装并激活了我的模块。

我的AJAX函数只是获取此HTML响应,将其放入div中,然后打开一个弹出窗口。

我的问题是-如何设置产品ID,以便该模块知道要加载的产品,以及如何正确加载此模块。我也尝试过类似的方法:

谢谢。

PS:我也尝试过:

    $layout = $this->getLayout();
    $update = $layout->getUpdate();
    $update->load('catalog_product_view');
    $layout->generateXml();
    $layout->generateBlocks();
    $output = $layout->getOutput(); // $output is an empty string

问题答案:

产品控制器使用助手来设置活动产品。您应该能够在控制器中执行相同的操作!

在进行布局之前,请尝试以下操作:

$productId  = (int) $this->getRequest()->getParam('id');
Mage::helper('catalog/product')->initProduct($productId, $this);

要注意的另一件事:如果添加诸如product.info块之类的块。如果在其模板文件中调用它们,则需要其他子块。

使用自定义布局xml文件将是最简单的。然后,您可以为操作句柄添加特定的布局(您的操作句柄由模块中的etc /
config.xml文件中的routers节点组成<frontend><routers>,例如<Yourmodule>node,请确保将其小写!然后用下划线添加控制器名称和操作名称,在您的情况下为index_index),如下所示:

<yourmodule_index_index>
    <remove name="right"/>
    <remove name="left"/>
    <block type="catalog/product_view" name="root" output="toHtml" template="catalog/product/view.phtml">
    <!-- Add all the child blocks you need -->
    </block>
</yourmodule_index_index>

这使view.phtml成为使用其toHtml方法呈现自身的根块。因此,在您的控制器操作中,您需要做的就是上面的两行,然后:

$this->loadLayout();
$this->renderLayout();


 类似资料:
  • 问题内容: 我有以下代码: 尽管它可以完成预期的工作,但却大大减慢了页面加载时间。是否可以仅加载可配置产品并删除“可配置”检查?该商店有12000种产品,其中大约700种是可配置的,其余的是儿童简单产品。 我发现以下代码返回了所有可配置产品。我只需要当前类别中的产品: 问题答案: 问题在于它已经被加载- 产品的数据已经从数据库中检索到。仅使用当前类别的产品集合也不足够,这将忽略“图层”(属性过滤器

  • 本文向大家介绍magento 产品集-LIKE查询,包括了magento 产品集-LIKE查询的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我有一个问题与Magento(CE1.9.0.1)和缺货产品显示在类别页面。配置看起来很好,我已经刷新了缓存,索引也是最新的。有一个配置,其中有一个简单的产品分配。可配置产品设置为管理库存,简单产品也设置为管理库存,数量为0,缺货。我有同样的设置在另一个Magento网站,当一个简单的产品被设置为0和缺货,可配置的产品将成为缺货,并不显示在类别上。 null null 简单产品(截图) 所有内容都

  • 问题内容: 我正在尝试按照此处的帖子进行操作,这可能是错误的,以了解有关MVC中部分视图加载的更多信息。我知道MVC的基础知识,但是想在开始使用MVC之前做更多的ajax工作。 目标是使局部视图加载在div中。 它只是将部分视图作为整个页面加载,而不是在Div内部加载。 代码如下: 控制器: 主视图(索引):(我也尝试了“ mainDiv”而不带井号,但不确定哪个是正确的) 局部视图1(Page1

  • 本文向大家介绍magento 通过SKU获取产品,包括了magento 通过SKU获取产品的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我在任何地方都没看到有人问过这个问题,所以下面是: 我在我的Magento商店里有几个属性,但是为了让用户从过于杂乱的页面中解脱出来,我用标签把产品页面上不同类型的信息分开。第一个选项卡显示产品描述,它目前是一组HTML,基本上是通过显示易于理解的图标来镜像属性,图标下有属性值,第二个选项卡显示更深入的信息,属性是从DB调用的。 现在,当编辑或添加产品时,我基本上必须添加两次属性:一次作为实际的产