【问题标题】:jQuery, items not being deleted form cart correctlyjQuery,未正确从购物车中删除的项目
【发布时间】:2013-03-11 22:40:07
【问题描述】:

我对 jQuery 很陌生。我正在构建购物车并尝试从购物车中删除产品。如果我在购物车中有一个项目然后将其删除,它会消失,但如果我将另一个项目添加到购物车,我删除的项目将重新出现。如果我有一张包含多个对象的卡片,当我尝试删除它时,它只会更改总数。

$('.addToCart').click(function(){
    var id = this.id;
    var price = parseFloat($('#priceAdd-'+id).val()).toFixed(2);;
    var name = $('#name-'+id).val();
    var total =(parseFloat($('#total').text())+parseFloat(price)).toFixed(2);
    cartSize++;

    $('#product-'+id).fadeOut('fast');
    $('#added-'+id).delay(500).fadeIn('fast');

    $.ajax({
        type: "POST",
        url: 'resources/addToCart.php',
        data: { itemId: id , name: name, price: price},
        cache: false,
        success: function(html){
            $("ol").append(html).slideDown("slow");
            $('#noItems').fadeOut('fast');
            $('#total').html(total);
            $('#mainCart').fadeIn('fast');
        }
    });
});

$('ol').on("click",'.del',function(e){
    var id= e.target.id;
    var productId = $('#productId-'+id).text();
    var productPrice = $('#price-'+id).text();
    var total = $('#total').text();
    var newPrice = (parseFloat(total) - parseFloat(productPrice)).toFixed(2);
    var dataString = 'id='+ id;
    cartSize--;

    alert(id);

    $('#total').html(newPrice);     
    $("#cart-"+id).remove();

    $.ajax({
        type: "POST",
        url: "resources/del.php",
        data: { id: id },
        cache: false,
        success: function(html){
            $('#added-'+productId).fadeOut('Fast');
            $('#product-'+productId).delay(600).fadeIn('Fast');

            if(cartSize == 0){
                $('#noItems').fadeIn('Fast');
                $('#mainCart').fadeOut('Fast');     
            }
        }
    });
    return false;   
});

任何意见将不胜感激

谢谢

编辑:还有其他人可以帮助我吗?

【问题讨论】:

    标签: php ajax jquery


    【解决方案1】:

    我认为当您调用“resources/del.php”时,这不会删除服务器中的项目(仅在视觉上),然后当您使用“resources/addToCart.php”添加另一个项目时,这将返回所有项目(甚至是你认为你删除的项目)

    【讨论】:

    • 我创建了另一个页面来监控会话数据,del.php 和 addToCart.php 工作正常。
    • 设置 Array ( [cart] => Array ( ) ) 向数组添加 3 项: Array ( [cart] => Array ( [0] => Array ( [id] => 4 [ name] => product1 [price] => 14.89 [qty] => 1) [1] => 数组 ([id] => 5 [name] => product2 [price] => 17.89 [qty] => 1) [2] => 数组(字符用完)))
    • 删除了中间项目:Array ( [cart] => Array ( [0] => Array ( [id] => 4 [name] => product1 [price] => 14.89 [qty] = > 1 ) [2] => 数组 ([id] => 6 [name] => product2 [price] => 27.29 [qty] => 1) ) [shipping] => 3)
    • resources/addToCart.php 返回的 HTML 是什么?
    • 这里是 addToCart.php 输出:
      '.$_REQUEST['itemId']​​.' X ';
    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多