php 购物车的结算,购物车结算add_to_order.php,

这篇博客详细讲解了从购物车结算到订单创建的流程。通过PHP的session管理和JSON交互,实现了商品信息从购物车到订单的转移。前端使用jQuery AJAX提交表单数据,后端解析并处理订单。在购物车页面,遍历session获取商品信息并显示,当用户点击结算,商品被移出购物车并存入订单。同时,文章强调了数据提交的注意事项,如避免冗余和正确设置checkbox。
摘要由CSDN通过智能技术生成

购物车结算add_to_order.php,<?phpsession_start ();include_once("DB.class.php");//接受并解析前端传过来的json,转换成数组。

$goods_list =$_POST['order'];$goods_list= json_decode($goods_list, true);//1.获取session信息

$arr = $_SESSION['gwc'];//获得订单数组

$item_list = $goods_list['order'];//一维实现,每次先清空订单。

$order = '';//把商品信息存到订单,并且把他们从购物车中删除

foreach($item_list as $k=> $item){//把商品信息存到订单

$order[$k] = $arr[$k];//把商品信息从购物车中删除

unset($arr[$k]);

}//更新购车的商品信息

if(!empty($arr)){$_SESSION['gwc'] = $arr;

}else{$_SESSION['gwc'] = '';

}//最后将订单信息存到session

$_SESSION['order'] = $order;//var_dump($_SESSION);

// die();

echo "OK";exit;?>

业务逻辑

从购物车中点击结算,即是把商品信息从购物车中转移到订单中。

技术点:接受的方式是json。要先在前台以json的形式传过来,这里再把它解析为数组,再运用。

购物车页面的结算按钮注册点击事件(需要引入jquery文件)

$('#jiesuan').click( function(){//间接设置订单金额

var j = $('.total_text').text();//去除¥符号

var order_toal = j.substring(1);//将标签的值赋给input传过去

$("#order_total").val(order_toal);//用插件将表单生成json,在ajax发送过去后台

var serializeObj=$('#form1').serializeJSON();

var serializeStr=JSON.stringify(serializeObj);

console.log(serializeStr);

$.ajax({

cache: false,type: "POST",url: "add_to_order.php",traditional:true,data: {order : serializeStr}, //注意这里的写法,键为order

success: function(msg){if(msg=="OK"){

alert("下单成功");//location.reload();

//window.location.href='order.php';}else{

alert(msg);

alert("下单失败");

}

}

});

这是表单中的一部分,展示如何把选中的商品传过去。关键在于checbox键值设置:在foreache循环中,所以键值得有变量混合进去。(仅展示代码,复制有样式问题)

店铺: 蜜食专家

<?phpsession_start ();include_once("DB.class.php");if(isset($_SESSION['gwc'])&&!empty($_SESSION['gwc'])){$arr2 = $_SESSION['gwc'];foreach($arr2 as $k1=> $arr){$goods_id = $arr['goods_id'];$sql="select * from tb_goods where id=$goods_id";$goods = $dao->getRow($sql);$goods_num = $arr['num'];$sum = $goods['price']*$goods_num;?>

  • <?php echo ""; ?>

    <?php echo ""; ?>

  • <?php echo "";?>

    <?php echo "$goods[goodsname]"; ?>
  • 规格:默认

  • <?php echo ""; ?>

  • <?php echo "- "; ?>

    <?php echo ""; ?>

    <?php echo "+ "; ?>

    <?php echo ""; ?>

  • <?php echo "删除宝贝 "; ?>

<?php }}else{echo "

dei,你的购物车只剩下尊严了!!!";

}?>

383aaeeb59a9127965456f1b34197391.png

注意事项

可以给商品的checkbox类型添加name属性是因为他有selected属性,而其他像hidden类型的不能给它name属性,否则也会提交到后台。要保持提交过去的数据不能有冗余,需要遍历。

而且添加到订单也只需商品id就行,订单的商品数量可以在根据key在gwc中获得。具体看add_to_order.php.

http://www.dengb.com/PHPjc/1355315.htmlwww.dengb.comtruehttp://www.dengb.com/PHPjc/1355315.htmlTechArticle购物车结算add_to_order.php, ? php session_start (); include_once ("DB.class.php" ); // 接受并解析前端传过来的json,转换成数组。 $goods_list = $_POST ['orde...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值