ขอถามการทำระบบ shopping cart หน่อยครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ขอถามการทำระบบ shopping cart หน่อยครับ

ขอถามการทำระบบ shopping cart หน่อยครับ

 ตอนนี้กำลังสนใจทำระบบ shopping cart อยู่แต่ไม่รู้ว่าจะเก็บข้อมูลลง Session ยังไงครับ
ตอนนี้ทำหน้าแสดงสินค้าแล้วพอเรากดที่ add cart มันจะส่งไปที่หน้า cart.php ในหน้านี้แหละเราจะเขียนยังไงดีครับ
ขอวิธีการก็ได้ครับจะนำไปเขียนเป็นโค้นเอง ถ้าว่างก้จัดตัวอย่างมาให้ดูเป็นแนวทางก็ดีคับ ขอบคุณมากครับ



Cpuhost 183.89.28.xxx 27-03-2010 23:06:19

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

ระบบ shopping cart ถ้ามีความเข้าใจเรื่อง session และ array อยู่บ้าง โดยวิธีการก็จะไม่ยาก
ถ้ามองเป็นหน้าเว็บเพจ ก็จะมีแค่ 2 หน้าที่สำคัญเกี่ยวกับการทำ shopping cart
1 หน้าแสดงสินค้า และมี ปุ่ม สำหรับ add to cart
2 หน้าแสดงสินค้า ที่ได้ทำการเลือกไว้ หรือหน้า ตะกร้าสินค้า

โดยตัวสินค้า สิ่งจำเป็นสำหรับ การทำ shopping cart ได้แก้
id สินค้า ไม่ซ้ำกัน
ชื่อสินค้า
ราคาสินค้า

การส่งสินค้าไปยังหน้าตะกร้าสินค้า จะกำหนดเป็นแบบ form submit หรือ ส่งผ่านลิ้ง url ธรรมดาเลยก็ได้
ตัวอย่างการส่งแบบ form get หรือ post ก็ได้ ในที่นี้ใช้เป็น get

<form id="form1" name="form1" method="get" action="cart.php">
  <input name="pro_id" type="hidden" id="pro_id" value="1" />
  <input name="pro_name" type="hidden" id="pro_name" value="product name" />
  <input name="pro_price" type="hidden" id="pro_price" value="100" />
  <input name="pro_qty" type="text" id="pro_qty" value="1" size="5" />
  <input type="submit" name="button" id="button" value="add to cart" />
</form>

ตัวอย่างการส่งแบบ link

<a href="cart.php?pro_id=1&pro_name=product&pro_price=100&pro_qty=1">add to cart</a>

เมื่อมีการส่งค่าไปยังหน้าตะกร้าสินค้าในที่นี้ cart.php ในหน้านี้จะใช้ ตัวแปร session ในการเก็บค่าสินค้า
ตัวอย่างการรับค่า

<?php
session_start();
if($_GET['pro_id']!=""){
	$_SESSION['ses_pro_id'][$_GET['pro_id']]=$_GET['pro_id'];
	$_SESSION['ses_pro_name'][$_GET['pro_id']]=$_GET['pro_name'];
	$_SESSION['ses_pro_price'][$_GET['pro_id']]=$_GET['pro_price'];
	$_SESSION['ses_pro_qty'][$_GET['pro_id']]=$_GET['pro_qty'];
	$_SESSION['ses_pro_totalprice'][$_GET['pro_id']]=$_GET['pro_price']*$_GET['pro_qty'];
}
?>

ตัวแปรแต่ละตัวใฃ้สำหรับ
$_SESSION['ses_pro_id'] เก็บ id ของสินค้าสำหรับอ้างอิงต่อไป
$_SESSION['ses_pro_name'] เก็บชื่อสินค้า
$_SESSION['ses_pro_price']  เก็บราคาสินค้าต่อหน่วย ( ต่อ 1 ชิิ้น )
$_SESSION['ses_pro_qty'] เก็บจำนวนสินค้าที่เลือก หรือส่งมา
$_SESSION['ses_pro_totalprice'] เก็บราคาสินค้ารวมแต่ละตัวจากการคำนวณ ได้จาก ราคา คูณ ปริมาณ

ตัวอย่างการแสดงผลหน้า cart.php

<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="30" align="center">ลำดับ</td>
    <td align="center">ชื่อสินค้า</td>
    <td width="75" align="center">ราคา</td>
    <td width="75" align="center">จำนวน</td>
    <td width="75" align="center">รวม</td>
  </tr>
 <?php
 $i=1;
 if(count($_SESSION['ses_pro_id'])>0){
 foreach($_SESSION['ses_pro_id'] as $key=$value){ ?>
 ?> 
  <tr>
    <td align="center"><?=$i?></td>
    <td align="center"><?=$_SESSION['ses_pro_name'][$key]?></td>
    <td align="center"><?=$_SESSION['ses_pro_price'][$key]?></td>
    <td align="center"><?=$_SESSION['ses_pro_qty'][$key]?></td>
    <td align="center"><?=$_SESSION['ses_pro_totalprice'][$key]?></td>
  </tr>
<?php $i++; }} ?>  
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="center">ราคารวม</td>
    <td align="center"><?=array_sum($_SESSION['sss'])?></td>
  </tr>
</table>

สามารถหาจำนวนสินค้าทั้งหมดในตะกร้าได้จาก

<?=count($_SESSION['ses_pro_id'])?>

สามารถหาจำนวนราคารวมทั้งหมด ได้จาก

<?=array_sum($_SESSION['ses_pro_totalprice'])?>

 



ninenik 124.121.248.xxx 28-03-2010
 ความคิดเห็นที่ 2

 ขอบพระคุณมากครับ

ตรง <a href="cart.php?pro_id=1&pro_name=product&pro_price=100&pro_qty=1">add to cart</a> 

ถ้าผมส่งแค่ pro_id ไปอย่างเดียวแล้วให้เลือกรายการสินค้าจากฐานข้อมูลตาม id ที่ส่งมาแล้วทำการเก็บลง session อีกทีหนึ่ง ตรงนี้น่าจะได้ใช้เปล่าครับ

ถ้าผมเข้าใจไม่ผิดนะครับแต่ที่คุณ ninenik ให้ตัวอย่างมานั้นผมพอจะมองออกละว่าต้องทำยังไงบ้าง ทีแท้ก็เก็บข้อมูลลง session แล้วก็ array 2 มิติ พอดีไม่เคยทำระบบนี้มาก่อนเพิ่มจะรับโปรเจ็คนี้มาก็เลยว่าจะรองทำดูครับ

ขอบคุณมากครับ



cpuhost 183.89.242.xxx 28-03-2010 22:50






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ