購物車結算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 購物車的結算,購物車結算add_to_order.php,兄 ";?>
<?php echo "$goods[goodsname]"; ?>
- 規格:預設
- <?php echo ""; ?>
-
<?php echo "- "; ?>
<?php echo ""; ?>
<?php echo "+ "; ?>
<?php echo ""; ?>
- <?php echo "删除寶貝 "; ?>
<?php }}else{echo "
兄
dei,你的購物車隻剩下尊嚴了!!!";
}?>
注意事項
可以給商品的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...