使用opencart中的ajax将产品手动添加到购物车

时间:2014-08-23 15:15:37

标签: php jquery ajax opencart

一旦用户使用我自己的功能点击一个按钮,我就需要将产品添加到购物车中。

按钮代码:

 <input type="button" value="Add to cart" onclick="addItemsToCart(83); " class="button btn-success"  id="addToCartButton1"/>

 <input type="button" value="Add to cart" onclick="addItemsToCart(84); " class="button btn-success"  id="addToCartButton2"/>

addItemsToCartFunction

function addItemsToCart(option_value_id){

        $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: 'product_id=' + 92+ '&quantity=' + 1, //need to change this
        dataType: 'json',
        success: function(json) {
            $('.success, .warning, .attention, .information, .error').remove();

            if (json['redirect']) {
                location = json['redirect'];
            }

            if (json['success']) {
                $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

                $('.success').fadeIn('slow');

                $('#cart-total').html(json['total']);

                $('html, body').animate({ scrollTop: 0 }, 'slow'); 
            }   
        }
    });

    }

这是正常的。

但是该产品有一个名为'custom'的选项。

根据数据库的选项细节:

option id: 17
option values ids 83 and 84.

我已将选项值作为参数传递给函数addItemsToCart。

现在我需要将该选项和值传递给数据部分。这意味着我需要改变这一行。

data: 'product_id=' + 92+ '&quantity=' + 1,

怎么做?

2 个答案:

答案 0 :(得分:0)

由于您使用参数option_value_id,我认为您想要这个:

data: {product_id: option_value_id, quantity: 1},

查看jQuery Docs了解详情。

答案 1 :(得分:0)

更改功能

中的参数
function addItemsToCart(option_id, option_value)

data更改

data: {product_id: 92, quantity: 1, option_id: option_id, option_value: option_value},

更改按钮

<input type="button" value="Add to cart" onclick="addItemsToCart(17,83); " class="button btn-success"  id="addToCartButton1"/>

<input type="button" value="Add to cart" onclick="addItemsToCart(17,84); " class="button btn-success"  id="addToCartButton1"/>

在帖子中,值将是这样的:

$this->request->post = Array(
    ['product_id'] = 92,
    ['quantity'] = 1,
    ['option_id'] = 17,
    ['option_value'] = 83
)