购物车用Ajax向后台传参

因为购物车是有多种商品所以这个写

<script>
    //提交订单 获取数据传到后端存session
    $('#J_Go').click(function(){
        var arr = [];
  //判断选中了那几个
        $("input[name='checkbox']:checked").each(function(){
            //循环获取因为购物车可能有多条
            var ids = $(this).parents('ul').data('id');
            var num = $(this).parents('ul').find('.text_box').val();
            var zj = parseInt($(this).parents('.concent').find('.zzjj').text());
       //循环这里是形成一组数组
            arr.push(ids+','+num+','+zj);
        });
  //这里是数组之间用@符号分割
        var s = arr.join('@');
        $.ajax({
            type: "post",
            url: "{:url('gwnr')}",
            data: {nr:s},
            dataType: "json",
            success: function (response) {
                if(response.a==1){
                    location.href='{:url("shopcart/pay")}';

                }
            }
        });
    });
</script>
方法
//购物车内容暂存
    public function gwnr()
    {
        $nr=input('nr');
        // var_dump($nr);
  //穿过来的是二维数组所以先用@符号分割 这样分割以后就把每件商品分割出来了
        $dici=explode('@',$nr);
        $arr=[];
  //循环分割后的数组
       foreach($dici as $k=>$v){
        $a=explode(',',$v);
        //二维数组直接写会报没有键这个错,所以再给他定义一个空数组
        $arr[$k]= [];
        $arr[$k]['id'] = $a[0];
        $arr[$k]['shl'] = $a[1];
        $arr[$k]['zj'] = $a[2];
       }
    //    var_dump($arr);
       session('cont',$arr);
       return $arr=['a'=>1];
    }
posted @ 2020-08-13 09:31  不吃肉的羊  阅读(391)  评论(0编辑  收藏  举报