• 2019-08-20 购物车中相关代码


    <div class="content content-nav-base shopcart-content">
        <div class="main-nav">
            <div class="inner-cont0">
                <div class="inner-cont1 w1200">
                    <div class="inner-cont2">
                        <a href="{:U('home/category/index')}" class="active">所有商品</a>
                        <a href="{:U('home/groupon/index')}">今日团购</a>
                        <a href="information.html">母婴资讯</a>
                        <a href="{:U('home/aboutus/index')}">关于我们</a>
                    </div>
                </div>
            </div>
        </div>
        <div class="banner-bg w1200">
            <h3>夏季清仓</h3>
            <p>宝宝被子、宝宝衣服3折起</p>
        </div>
        <div class="cart w1200">
            <div class="cart-table-th">
                <div class="th th-chk">
                    <div class="select-all">
                        <div class="cart-checkbox">
                            <input class="check-all check" id="allCheckked" type="checkbox" value="true" onclick="all_check()">
                        </div>
                        <label>&nbsp;&nbsp;全选</label>
                    </div>
                </div>
                <div class="th th-item">
                    <div class="th-inner">
                        商品
                    </div>
                </div>
                <div class="th th-price">
                    <div class="th-inner">
                        单价
                    </div>
                </div>
                <div class="th th-amount">
                    <div class="th-inner">
                        数量
                    </div>
                </div>
                <div class="th th-sum">
                    <div class="th-inner">
                        小计
                    </div>
                </div>
                <div class="th th-op">
                    <div class="th-inner">
                        操作
                    </div>
                </div>
            </div>
            <div class="OrderList">
                <div class="order-content" id="list-cont">
    
                    <foreach name="cart_data" item="vo">
                    <ul class="item-content layui-clear" id="ul{$vo.cart_id}">
                        <input type="hidden" id="goods_number_{$vo.cart_id}" value="{$vo.goods_number}"/>
                        <li class="th th-chk">
                            <div class="select-all">
                                <div class="cart-checkbox">
                                    <input class="CheckBoxShop check" id="checkbox_{$vo.cart_id}"
                                           type="checkbox" num="all" name="checkbox" value="{$vo.cart_id}" onclick="sin_ch()" onmouseout="cat()">
                                </div>
                            </div>
                        </li>
                        <li class="th th-item">
                            <div class="item-cont">
                                <a href="http://www.store.com/index.php/home/category/details?goods_id={$vo.goods_id}"><img src="{$vo.img}" alt="主图"></a>
                                <div class="text">
                                    <div class="title">{$vo.name}</div>
                                    <p><span>粉色</span>  <span>130</span>cm</p>
                                </div>
                            </div>
                        </li>
                        <li class="th th-price">
                            <span class="th-su" id="price_{$vo.cart_id}">{$vo.price}</span>
                        </li>
                        <li class="th th-amount">
                            <div class="box-btn layui-clear">
                                <div class="less layui-btn" onclick="cart_del({$vo.cart_id})">-</div>
                                <input class="Quantity-input" type="" name="" value="{$vo.number}" disabled="disabled" id="number_{$vo.cart_id}">
                                <div class="add layui-btn" onclick="cart_add({$vo.cart_id})">+</div>
                            </div>
                        </li>
                        <li class="th th-sum">
                            <span class="sum" id="sumprice_{$vo.cart_id}">{$vo['price']*$vo['number']}</span>
                        </li>
                        <li class="th th-op">
                            <span onclick="sin_del({$vo.cart_id})">删除</span>
                        </li>
                    </ul>
                    </foreach>
                </div>
            </div>
    
    
            <div class="FloatBarHolder layui-clear">
                <div class="th th-chk">
                    <div class="select-all">
                        <div class="cart-checkbox">
                            <input class="check-all check" id="check_all_all" name="select-all" type="checkbox"  value="true" onclick="check_all()">
    
                        </div>
                        <label>&nbsp;&nbsp;已选<span class="Selected-pieces" id="t_number">0</span></label>
                    </div>
                </div>
                <div class="th batch-deletion">
                    <span onclick="all_del()">批量删除</span>
                </div>
                <div class="th Settlement">
                    <button class="layui-btn">结算</button>
                </div>
                <div class="th total">
                    <p>应付:<span class="pieces-total" id="total">0</span></p>
                </div>
            </div>
        </div>
    </div>
    
    <script>
        //点击加号
        function cart_add(cart_id){
            var price = $("#price_"+cart_id).html();//获取到单价
            var number =$("#number_"+cart_id).val();//获取原数量
            var new_num = parseInt(number)+1;//点击后数量+1 强制转为整形
           var goods_number = $("#goods_number_"+cart_id).val();//获取库存数量
            if (new_num>goods_number){
                layer.alert('不能超过该商品的库存数量');//两表联查后获取商品库存  放在隐藏框 添加数量不能大于库存数量
                $("#checkbox_"+cart_id).prop("checked","true");//点击哪个商品的加号就选中哪个商品
                sin_ch();
            }else{
                $("#number_"+cart_id).val(new_num);//添加数量在不大于库存量的情况下 把新数量赋值给旧数量
           //alert(goods_number);
            //用ajax把购物车新数量传入表中
                $.ajax({
                    url:"upd_number",
                    type:"POST",
                    data:{"cart_id":cart_id,"number":new_num},
                    dataType:'json',
                    success:function(result){
                        if (result.status==1){
                            var sumprice = parseFloat(price*new_num);//计算单件商品的小计价格
                            $("#sumprice_"+cart_id).html(sumprice);//把单件小计价格进行赋值
                            $("#checkbox_"+cart_id).prop("checked","true");//点击哪个商品的加号就选中哪个商品
                            sin_ch();
                        }
                    }
                })
            }
        }
    
    
        //点击减号
        function cart_del(cart_id){
            var price = $("#price_"+cart_id).html();//获取到单价
            var number =$("#number_"+cart_id).val();//获取原数量
            var new_num = parseInt(number)-1;//点击后数量+1 强制转为整形
            if (new_num<1){
                layer.alert('至少保留一件商品哦');//两表联查后获取商品库存  放在隐藏框 添加数量不能大于库存数量
                $("#checkbox_"+cart_id).prop("checked","true");//点击哪个商品的加号就选中哪个商品
                sin_ch();
            }else{
                $("#number_"+cart_id).val(new_num);//添加数量在不大于库存量的情况下 把新数量赋值给旧数量
                //alert(goods_number);
                //用ajax把购物车新数量传入表中
                $.ajax({
                    url:"upd_number",
                    type:"POST",
                    data:{"cart_id":cart_id,"number":new_num},
                    dataType:'json',
                    success:function(result){
                        if (result.status==1){
                            var sumprice = parseFloat(price*new_num);//计算单件商品的小计价格
                            $("#sumprice_"+cart_id).html(sumprice);//把单件小计价格进行赋值
                            $("#checkbox_"+cart_id).prop("checked","true");//点击哪个商品的加号就选中哪个商品
                            sin_ch();
                        }
                    }
                })
            }
        }
    
    
    
        function all_use(){
            var arr = Array();//定义一个空数组 用来存放被选中id
            var total = 0;//定义总价初始为0
            var t_number = 0;//定义总数为0
            $("input[name='checkbox']:checked").each(function(){
                arr.push($(this).val());//把所有选中的复选框id存进数组
            });
    
            for(var i =0;i<arr.length;i++){
                total +=parseFloat($("#sumprice_"+arr[i]).html());//循环被选中的 把价格都赋值给总价
                t_number += parseInt($("#number_"+arr[i]).val());//选中总数
            }
    
            $("#total").html(total);//把总价格赋值给显示总价位置
            $("#t_number").html(t_number);//把总数量赋值给显示总数位置
        }
    
    
    
    
        //点击单个商品前面的复选框给与显示
        function sin_ch(){
            all_use();
            $("#check_all_all").prop("checked",true);
    
        }
    
    
        //点击全选
        function all_check(){
           var result =  $("#allCheckked").is(":checked");//获取到checked属性值
           var checkbox = $("input[name='checkbox']");
           if (result){
               for (var i=0;i<checkbox.length;i++){
                    checkbox[i].checked=true;
               }
               $("#check_all_all").prop("checked",true);
           }else{
               for (var i=0;i<checkbox.length;i++){
                   checkbox[i].checked=false;
               }
               $("#check_all_all").removeAttr("checked");
           }
          all_use();
        }
    
        //点击全选
        function check_all(){
            var result =  $("#check_all_all").is(":checked");//获取到checked属性值
            var checkbox = $("input[name='checkbox']");
            if (result){
                for (var i=0;i<checkbox.length;i++){
                    checkbox[i].checked=true;
                }
                $("#allCheckked").prop("checked",true);
            }else{
                for (var i=0;i<checkbox.length;i++){
                    checkbox[i].checked=false;
                }
                $("#allCheckked").removeAttr("checked");
            }
            all_use();
        }
    
    
        //
        function cat(){
            var arr = Array();//定义一个空数组 用来存放被选中id
            $("input[name='checkbox']:checked").each(function(){
                arr.push($(this).val());//把所有选中的复选框id存进数组
            });
            var data = arr.join(',');
            if (data==""){
                $("#allCheckked").removeAttr("checked");
                $("#check_all_all").removeAttr("checked");
            }
        }
    
    </script>
    
    
    
    <script>
        //批量删除
        function all_del(){
            layer.confirm('您不再考虑下吗?', {
                btn: ['不考虑','留下它'] //按钮
            }, function(){
                var arr = Array();//定义一个空数组 用来存放被选中id
                $("input[name='checkbox']:checked").each(function(){
                    arr.push($(this).val());//把所有选中的复选框id存进数组
                });
                var josn = arr.join(',');//转换一下数组变为字符串
                if (josn==""){
                    layer.alert("请选择要删除的项目");
                    return false;
                }else{
                    $.ajax({
                        url:"all_del",
                        type:"POST",
                        dataType:"json",
                        data:{'cart_id':josn},
                        success:function(result){
                            if (result.status==1){
                                layer.alert(result.info);
                                for (var i =0;i<arr.length;i++){
                                    $("#ul"+arr[i]).remove();
                                }
                                sin_ch();
                            } else{
                                layer.alert(result.info);
                            }
                        }
                    })
                }
            }, function(){
                layer.msg('已取消');
            });
        }
    </script>
    
    
    
    
    
    
    <script>
        //单条删除
        function sin_del(cart_id){
            layer.confirm('您确定要删除所选宝贝吗?', {
                btn: ['确定','留下它'] //按钮
            }, function(){
            $.ajax({
                url:'sin_del',
                data:{'cart_id':cart_id},
                type:"POST",
                dataType:"json",
                success:function(result){
                    if (result.status==1){
                        layer.alert(result.info);
                        $("#ul"+cart_id).remove();
                        sin_ch();
                    } else{
                        layer.alert(result.info);
                    }
                }
            })
            }, function(){
                layer.msg('已取消');
            });
        }
    </script>

    php部分代码

    <?php
    namespace HomeController;
    
    use ThinkController;
    use HomeControllerBaseController;
    class CartController extends BaseController
    {
        public function index(){
            $user_id = cookie('user_id');
            if ($user_id==""){
                $this->error('您未登录','/home/login/index',3);
            }else{
                $condition['user_id']=$user_id;
            }
            /*两表联查下购物车 无字段冗余*/
           $cart =  M('cart');
            $row = $cart->where($condition)->join('goods ON cart.goods_id = goods.goods_id')->select();
           $this->assign('cart_data',$row);
            $this->display();
    
    
            /*只查询购物车表 有字段冗余
            $cart = M('cart');
            $res = $cart->where($condition)->select();
            $this->assign('cart_data',$res);
            $this->display();
            */
        }
    
        public function sin_del(){
            $data['cart_id'] = I('post.cart_id');
            $cart = M('cart');
           $row =  $cart->where($data)->delete();
           if ($row){
                $this->info('1','删除成功',"");
           }else{
               $this->info('2','删除失败',"");
           }
        }
    
        //传入购物车商品数量
        public function upd_number(){
            $condition['cart_id']= I('post.cart_id');
            $data['number']= I('post.number');
            $cart = M('cart');
            $res = $cart->where($condition)->save($data);
            if ($res){
                $this->info('1','修改成功','');
            }else{
                $this->info('2','修改失败','');
            }
    
        }
    
        public function all_del(){
            $cart_id = I('post.cart_id');
            $data['cart_id'] = array("in",$cart_id);
            $cart = M('cart');
            $row =  $cart->where($data)->delete();
            if ($row){
                $this->info('1','删除成功',"");
            }else{
                $this->info('2','删除失败',"");
            }
    
        }
    }
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 洗牌
    判断一个窗口是否被挂起(发WM_NULL消息,或者调用IsHungAppWindow API进行测试)
    线程天敌TerminateThread与SuspendThread
    Visual C++ 异常(Exception)常见问题 (原文标题:A Visual C++ Exception FAQ)
    阻止屏保运行、显示器和系统待机(使用SystemParametersInfo和SetThreadExecutionState两种办法)
    C语言编译全过程
    MSbuild 教程
    Mac OS X下环境搭建 Sublime Text 2 环境变量配置 开发工具配置Golang (Go语言)
    grunt实用总结
    DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?
  • 原文地址:https://www.cnblogs.com/zhangxu-fasu/p/11384425.html
Copyright © 2020-2023  润新知