购物车用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];
}