添加商品到購物車add_to_cart.php(學生筆記)


<?php
		session_start();//啟動session
		
		$goods_id = $_POST['goods_id'];//獲取商品id
		
		$number = $_POST['num'];//獲取商品數量

		if(empty($_SESSION["gwc"]))
		{

		    //1.購物車是空的,第一次點擊添加購物車

		    $arr[$goods_id] =array(
		    				'goods_id'  =>	$goods_id,
		    				
		    				'num'  =>	$number
		    				
		    				);

		    $_SESSION["gwc"]=$arr;

		}
		else//_1 購物車不是空的
		{

		    

		    //判斷購物車中是否存在該商品

		    $arr = $_SESSION["gwc"]; //先存一下

		    $chuxian = false;

		    //2.查詢購物車中是否有該商品,K是商品id,做個標記
		    foreach($arr as $k=> $v)
		    {
		    	
		        if($k==$goods_id)
		        {

		            $chuxian = true;

		        }

		    }

		 
		// 3.購物車中已有該商品,則只需將它的數量增加
		    if($chuxian)
		    {

		    	$arr[$goods_id]['num']+=$number;
		        
		        $_SESSION["gwc"] = $arr;
		    }
		    else
		    {

		        //_3.如果購物車中沒有該商品
		        $arr[$goods_id] = array(
		    				'goods_id'  =>	$goods_id,		    				
		    				'num'  =>	$number		    				
		    				);		         
		        $_SESSION["gwc"] = $arr;		        
		        // print_r($arr);
		        //  die();
		    }

		}

		echo "OK";
		// echo '<script language="JavaScript">;
  //         alert("加購成功!");location.href="#";</script>;';
          
  //         exit;

 // var_dump($_SESSION);

 //    die();
		
		
	?>

  一.首先要明白添加一件商品到購物車的狀態有3種情況。

1.還沒有購物車。

2.有購物車了,但加入購物車的商品是購物車沒有的。

3.有購車了,加入購物車的商品在購物車也已經有了,那就值增加它在購物車的數量。

 

二.加入購物車頁面需要傳2個參數到php,商品id和加購的商品數量。在php前面幾行就是接受那2個參數。

 

三.要開通session。第一行的seesion_start();否則存進session的信息是不起作用的。雖然在后面能var_dump()出來。但在購物車展示商品頁面var_dump的session還是之前的。

 

四.這么多項的商品如何存進session?其實就是對session數組的增刪改查操作。

session就是一個數組。只是它能跨頁面訪問。存進session,最終目的還是為了在別的頁面能再次用到它。比如上面的代碼把商品信息存到$_SESSION['gwc']中,就是為了在購物車頁面能夠再次獲取$_SESSION['gwc'],利用foreach循環把你存到$_SESSION['gwc']的商品遍歷出來。

 

五.至於

 $arr[$goods_id] =array(
		    	'goods_id'  =>	$goods_id,		    				
		    	'num'  =>	$number
		    				);
這句代碼為什么里面只存或要存這2個參數,這也是根據購物車頁面展示時的要求來的,數量不難理解,你加購了幾件就展示幾件。id又到底是為什么要存進去,購物車展示的業務邏輯就是,根據商品id,然后從數據庫中該
id 的所有商品信息。即執行“select* form goods where id = 商品id”獲得


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM