【问题标题】:Magento, checkout/cart block not loading in ajax extensionMagento,结帐/购物车块未在 ajax 扩展中加载
【发布时间】:2013-03-04 06:15:11
【问题描述】:

我正在为 Magento 编写一个 ajax 扩展程序,但当我尝试使用它时遇到问题。

我想在购物车中的任何产品发生更改后重新加载整个区块,包括商品以及购物车总数。

我已经修改了许多网站所说的布局,但我无法很好地呈现结帐/购物车块。

我的两个解决方案是:


1° 尝试通过 xml 文件更新布局,我在 $block_cart 中得到一个错误。

我有课

Mati_Ajax_CartController extends Mage_Checkout_CartController
{
...
    public function updateShoppingCartAction()
    {
        ...
        $block_cart = $this->getLayout()->getBlock('checkout/cart');
        ...
    }
}

和一个 xml 文件(我确定我正在加载,因为 js 指出那里正在加载)

<checkout_cart_updateshoppingcart>
    <update handle="checkout_cart_index" />
</checkout_cart_updateshoppingcart>

2°试图创建块

public function updateShoppingCartAction()
{
    ...
    $block_cart = $this->getLayout()->getBlockSingleton('checkout/cart')->setTemplate("checkout/cart.phtml")->toHtml();
    ...
}

在这里我得到了块,但是当模板执行时$this-&gt;getChildHtml('totals'); 得到了一个错误的答案,所以网页与前一个网页有些不同


有人知道怎么做吗?

【问题讨论】:

    标签: magento magento-1.7


    【解决方案1】:

    在您的第一次尝试中,只需附加 -&gt;toHtml();

    或者,您可以将其作为命令包含在 xml output="toHtml"

    如果您正在寻求建议,请查看checkout/onepage/review 的功能。 他们在那里访问响应对象,然后将响应的主体设置为 html 变量,在您的情况下为 $block_cart

    【讨论】:

    • 感谢您的回答!当我得到一个错误时,当我对其执行 ->toHtml() 时,我得到一个错误,这就是我没有在这里写它的原因。
    【解决方案2】:

    密钥在 xml 文件中

    <ajax_cart_updateshoppingcart>
        <update handle="checkout_cart_index" />
    </ajax_cart_updateshoppingcart>
    

    【讨论】:

      猜你喜欢
      • 2012-06-21
      • 2015-12-13
      • 1970-01-01
      • 2014-11-09
      • 2015-07-06
      • 2014-03-06
      • 2012-11-22
      • 2014-08-30
      • 1970-01-01
      相关资源
      最近更新 更多