繁体   English   中英

Magento AJAX 购物车数量更新。 购物车中没有商品

[英]Magento AJAX cart quantity update. No items in cart

我正在尝试使用通过 AJAX 调用访问的 PHP 脚本更新位于标题中的 Magento“迷你购物车”。

购物车有“增加”和“减少”按钮。 单击后,将运行 PHP 脚本并保存和更新购物车中特定产品的数量。

现在,问题是当我运行这个 PHP 脚本时,购物车中似乎没有商品。 我在主页上和脚本运行时都查看了会话 ID,它们似乎都不同。 这就是为什么我认为脚本似乎相信我的购物车中没有任何物品。

我相信我为获取会话 ID 和购物车项目而编写的代码是正确的。 有谁知道我在这里可能做错了什么?

代码如下所示。 我知道这可能会写得更好,但现在我只想看到一些工作!

header.phtml 中的 HTML(这是在循环中获取篮子中的所有项目 - 在这里工作正常):

<button id="decrement" onclick="updateCart(<?php echo $product->getId(); ?>);" class="decrement">-</button>
<input type="text" class="quantity" name="quantity" id="quantity" value="<?php echo $product->getQty(); ?>">
<button id="increment" onclick="updateCart(<?php echo $product->getId(); ?>);" class="increment">+</button>

阿贾克斯:

function updateCart(productId, qty) {
            qty = jQuery('#quantity').val()
            jQuery.ajax({
                type: "POST",
                dataType: "HTML",
                data: { productId : productId, qty : qty },
                url: "scripts/get_cart_script.php?productId=" + productId + "&qty=" + qty,
                success: function (data) {
                    alert("Success");

                },
                error: function(data){
                    alert("Failure");
                }
            });
        }

PHP:

require_once  $_SERVER['DOCUMENT_ROOT'] . '/app/Mage.php';

Mage::app();

// Get session
Mage::getSingleton('core/session', array('name'=>'frontend'));

// Check for a product id
if(isset($_REQUEST['productId']))
{

    // Product ID and Quantity
    $pid = $_REQUEST['productId'];
    $qnt = $_REQUEST['qty'];

    $cart = Mage::getSingleton('checkout/cart');
    $items = $cart->getItems(); 

    foreach ($items as $item) :
        if($pid == $item->getId()) :
            echo $item->getQty();
            $item->setQty($qnt); 
            $cart->save();
        endif;
    endforeach;     
};

您正在使用 2 个参数(即产品 ID 和数量)调用 ajax 更新函数,并且您调用了一个名为 update 的增量和减量按钮的函数,只有一个名为 productid 的参数。

您可以做一件事。更改 ajax 更新函数参数。仅使用一个名为产品 ID 的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM