Php 使用jQueryAjax将产品添加到购物车不起作用

Php 使用jQueryAjax将产品添加到购物车不起作用,php,jquery,magento,cart,Php,Jquery,Magento,Cart,我使用ajax在购物车中添加产品,代码如下: $cart = Mage::getModel('checkout/cart')->getQuote(); $cart->addProduct($product,array('qty'=>1)); $cart->save(); Mage::getSingleton('checkout/session')->setCartWasUpdated(true); 当我点击添加到购物车时,这会成功添加产品(比如CPU),然后我添加

我使用ajax在购物车中添加产品,代码如下:

$cart = Mage::getModel('checkout/cart')->getQuote();
$cart->addProduct($product,array('qty'=>1));
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
当我点击添加到购物车时,这会成功添加产品(比如CPU),然后我添加任何其他产品(比如笔记本电脑),然后它无法将笔记本电脑产品添加到购物车中,但当我第二次添加笔记本电脑产品时,它会成功添加到购物车中。我找不到问题所在。请帮忙。
提前感谢。

只需在带有url属性的按钮上执行onething call product add to cart链接,如

> <button type="button" title="<?php echo $this->__('add to cart') ?>"
> class="button btn-cart addsample" url ="<?php echo
> $this->getAddToCartUrl($_product) ?>"><span><span><?php echo
> $this->__('add to cart') ?></span></span></button></div>

在这里,我向magento的默认添加到购物车控制器发送ajax帖子。。希望这对您有所帮助

在magento中,添加到购物车过程是一个简单的表单提交过程,因此页面会被重新加载。因此,基于Ajax的购物车是加快购买过程的解决方案。一步一步的过程:

在ajax调用中传递哪些参数?你们在控制台中检查过你们的ajax调用吗?是的,我已经检查过了,我已经从那个里传递了产品id,它的值在控制台中是正确的。你们有一个现场演示来帮助调试吗?好的。在“addProduct”行之前打印变量“$product”的值,以获得正确的值。代码示例:var_dump($product)$购物车->添加产品($product,array('qty'=>1));它正在显示对象类型我无法使用此方法,因为我没有使用“添加到购物车”按钮位置的目录/产品页面。实际上,我已经进行了一些自定义,并且我正在另一个页面上显示产品,因此$this->getAddToCartUrl($\u product)以空值响应。您可以向我显示您的自定义代码以获取产品集合吗
$j('button.addsample').click(function(){
            $j(this).attr('disabled','disabled');

            $j.ajax({
                            type: "POST",
                            cache   : false,
                            dataType: 'json',
                            url: $j(this).attr('url'),
                            data: data,
                            success:function(data){

                                setTimeout(function() {
                                            window.location.reload();
                                    }, 1600);   


                                },
                            error:function(){

                                    setTimeout(function() {
                                            window.location.reload();
                                    }, 1600);   

                        }


            });

    });