添加到商品ID的购物车功能

时间:2014-06-20 09:44:46

标签: javascript php ajax e-commerce opencart

我为我的网站构建了一个自定义产品构建器,并且最后一步陷入困境 - 将产品添加到购物车中。

所以在我的自定义模板文件中,当点击“添加到购物车”按钮时,我会触发此代码:

$('#button-cart').bind('click', function() {
    $.ajax({
    url: 'index.php?route=checkout/cart/add',
    type: 'post',
    data: $('I WANT TO PUT PRODUCT ID HERE, BUT DOESNT WORK'),
    dataType: 'json',
    success: function(json) {

    }
});

我将产品ID保存为javascript变量,我只需要将其添加到购物车即可。任何帮助都会很棒。感谢。

_____________ 编辑 ______________

这是我最近的代码,当我点击添加到购物车按钮时,该功能肯定会被触发,locketID只是一个产品ID。正在调用成功函数,但if语句(错误或成功)和正在执行,并且产品未被添加到购物车。

值得一提的是,这是在类别模板文件中发生的吗?是否有任何可能不包含的需求?

$('#button-cart').bind('click', function() {
    $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: locketID,
        dataType: 'json',
        success: function(json) {

            console.log('success function called')

            if (json['error']) {
                console.log('ERROR');
            } 

            if (json['success']) {
                console.log('SUCCESS');
            }


        }
    });
});

___________ EDIT __________

所以,我采取了一种稍微不同的方法,这就是我在添加到购物车按钮点击时所调用的内容,但它重定向到产品页面而不是将产品添加到购物车,任何想法?< / p>

$('#button-cart-custom').bind('click', function() {

    var quantity = 1;
    var product_id = 12196;

    $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: 'product_id=' + product_id + '&quantity=' + quantity,
        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'); 
            }   
        }
    });


});

2 个答案:

答案 0 :(得分:0)

非常简单

var vars = new Array();

vars = {var1: var1_value,var2: var2_value}

现在替换你的代码

带有data: $('I WANT TO PUT PRODUCT ID HERE, BUT DOESNT WORK'),

data: vars;

答案 1 :(得分:0)

替换data: locketID

data:{'id':locketID}  

和 使用

$_POST['id']在服务器上获取该数据