【发布时间】:2016-04-18 05:29:21
【问题描述】:
当我想从 AJAX 购物车中逐一删除超过 1 个产品时,第一个产品工作正常,但是当我尝试删除另一个产品时,它重定向到删除页面 URL 之类的页面
(SiteURL/checkout/cart/delete/id/012/uenc/aHR0cDovLzEyMi)
并显示一些 json 或 html 数据,例如 {"message":"Item was removed.","update_blocks":[{"key":".header .links","value":"<div class=\"links\"> ....
从购物车中删除商品函数 deleteAction()
public function deleteAction() {
$id = (int) $this->getRequest()->getParam('id');
if ($id) {
try {
$this->_getCart()->removeItem($id)
->save();
} catch (Exception $e) {
$_response = Mage::getModel('ajaxcart/response');
$_response->setError(true);
$_response->setMessage($this->__('Cannot remove the item.'));
$_response->send();
Mage::logException($e);
}
}
$_response = Mage::getModel('ajaxcart/response');
$_response->setMessage($this->__('Item was removed.'));
//append updated blocks
$this->getLayout()->getUpdate()->addHandle('ajaxcart');
$this->loadLayout();
$_response->addUpdatedBlocks($_response);
$_response->send();
}
如果我能得到一些帮助,我将不胜感激。提前致谢。
【问题讨论】:
-
请提供ajax响应。
-
@Shivanand 当我尝试删除第二个产品时,页面将重定向到删除显示 JSON 消息“项目已删除”的页面,在页面“update_blocks”和分页符上打印所有 JSON。在页面上打印 ajax 响应 ---->> {"message":"Item was removed.","update_blocks":[{"key":".header .links","value":"....请在文件 app/code/local/Mage/Checkout/controllers/CartController.php 或 app/code/core/Mage/Checkout/controllers/CartController.php 和 ajaxDeleteAction 函数中提供代码。@Shivanand 删除功能运行良好。仅在第二个产品删除时删除页面上的重定向存在问题。我认为它与 JS 无关,与 PHP 文件有关。你怎么看???如果您检查两个产品的删除 url,则 url 操作是 ajaxDelete。当您单击该 url 时,它会使用 ajax 删除产品并重新加载执行 minicart 块并使用 ajax 加载它。完成后,删除 url 必须像“domain.com/checkout/cart/ajaxDelete/id/29/uenc/xxxxx”而不是“SiteURL/checkout/cart/delete/id/012/uenc/aHR0cDovLzEyMi”。此网址将使用 php 代码。
标签: php jquery ajax magento-1.9