购物车数量加减价格变化

商城购物车

//加

```php
$('.plus').click(function () {
   var current_number = $(this).prev().val();
   if (current_number == 10){
      return false;
   }else{
      var current_number = parseInt(current_number)+1;
      $(this).prev().val(current_number);
   }
 //修改小计
   var price = $(this).closest('ul').find('.price').text();
   var sum = price * parseInt(current_number);
   $(this).closest('ul').find('.sum').text(sum);
   var id = $(this).closest('ul').find('.row_check').val();
   //重新计算已选商品数量和金额
   change_total();
   //ajax
   $.ajax({
      url:'changeNumber',
      type:'post',
      data:{id:id,current_number:current_number},
      success:function(res){
      }
   })
})

### //失焦事件

$('.current_number').blur(function () {
   var current_number = $(this).val();
   if (current_number <= 1){
      current_number = 1;
      $(this).val(current_number);
   }else if (current_number >= 10){
      current_number = 10;
      $(this).val(current_number);
   }
   //修改小计
   var price = $(this).closest('ul').find('.price').text();
   var sum = price * parseInt(current_number);
   $(this).closest('ul').find('.sum').text(sum);
   var id = $(this).closest('ul').find('.row_check').val();
   //ajax
   $.ajax({
      url:'changeNumber',
      type:'post',
      data:{id:id,current_number:current_number},
      success:function(res){
   })
})

### //全选

$('.check_all').change(function(){
   //获取全选的选中状态 checked属性
   $('.row_check').prop('checked',$(this).prop('checked'));
   //重新计算已选商品数量和金额
   change_total();
   //修改选中状态到购物车数据中
   var data = {
      'id':'all',
      'status':$(this).prop('checked') ? 1 : 0
   };
   //ajax
   $.ajax({
      url:'changestatus',
      type:'post',
      data:data,
      success:function(res){
         if (res.code != 200){
            alert(res.msg);return;
         }
      }
   })
})

### //单个选中状态

$('.row_check').click(function () {
   //判断 全选是否应该选中
   check_all();
   //重新计算已选商品数量和金额
   change_total();
   //修改选中状态到购物车数据中
   var data = {
      'id':$(this).val(),
      'status':$(this).prop('checked') ? 1 : 0
   };
   // ajax
   $.ajax({
      url:'changestatus',
      type:'post',
      data:data,
      success:function(res){
         if (res.code != 200){
            alert(res.msg);return;
         }
      }
   })
})

### //页面刷新,直接判断 全选是否应该选中

function check_all(){
   //判断 选中的行数 和 总行数 是否相等
   var status = $('.row_check:checked').length == $('.row_check').length;
   //设置全选的选中状态 checked属性
   $('.check_all').prop('checked',status);
}
//页面加载调用
check_all();
//重新计算已选中的商品价格、数量
function change_total() {
   //获取到选中行 row_check选中的
   var total_number = 0;
   var total_price = 0;
   $('.row_check:checked').each(function (i,v) {
      total_number += parseInt($(v).closest('ul').find('.current_number').val());
      total_price += parseFloat($(v).closest('ul').find('.sum').html());
   });
   //将累加的价格和数量放到页面中
   $('#total_number').html(total_number);
   $('#total_price').html('¥' + total_price);
};
//页面加载调用
change_total();
//删除
$('.delete').click(function () {
   //获取id
   var id = $(this).closest('ul').find('.row_check').val();
   var that = $(this);
   $.ajax({
      url:'delcart',
      data:{id:id},
      type:'get',
      datatype:'json',
      success:function (res) {
         if (res.code == 200){
            $(that).closest('.cart-list').remove();
         }
      }
   })
})

//结算页面

$(‘.sum-btn’).click(function () {
//获取选中的商品对应的长度
var checked_lenth = $(‘.row_check:checked’).length;
if (checked_lenth == 0){
alert(‘请选择一件商品’);
return false;
}
location.href = ‘getOrderInfo’;
})

## 控制器

* 修改商品选中状态

public static function xiustatus($data){
    //判断是否登录
    if (session('?user')){
      //全部修改
        if ($data['id'] == 0){
            \app\home\model\Cart::where('user_id',session('user.id'))->update(['is_selected' => $data['status']]);
        }else{
            \app\home\model\Cart::where('id',$data['id'])->update(['is_selected' => $data['status']]);
        }
        return true;
    }else{
        return false;
    }
}

```

修改商品的数量 * 修改商品的数量

public static function changeNumber($id,$current_number){
    if (session('?user')){
        \app\home\model\Cart::where('id',$id)->update(['number'=>$current_number]);
        return true;
    }else{
        return false;
    }
}

* 删除购物车商品

public static function delcart($id){
    if (session('?user')){
        \app\home\model\Cart::where('id',$id)->delete();
        return true;
    }else{
        //未登录删除cookie
        $data = json_decode(cookie('cart'),true) ? : [];
        //$id 下标
        unset($data[$id]);
        //保存cookie
        cookie('cart',json_encode($data),86400*7);
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!