我正在为Magento编写一个ajax扩展程序,当我尝试使用checkout / cart工作时,我遇到了麻烦。
我想在购物车中的任何产品更改后重新加载整个块,包括商品和购物车总数。
我修改了布局,就像很多网站所说的那样,我无法让结帐/购物车块渲染得很好。
我的两个解决方案是:
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->getChildHtml('totals');
它得到了错误的答案,因此网页与之前的网页有一些差异
有人知道如何使这项工作吗?
答案 0 :(得分:0)
在您第一次尝试时,只需附加->toHtml();
或者,您可以将其作为xml output="toHtml"
如果您正在寻找建议,请检查checkout/onepage/review
的功能。
在那里,他们访问响应对象,然后将响应的主体设置为html变量,在您的情况下$block_cart
答案 1 :(得分:0)
密钥位于xml文件中
<ajax_cart_updateshoppingcart>
<update handle="checkout_cart_index" />
</ajax_cart_updateshoppingcart>