Free Hosting

วันศุกร์ที่ 13 มกราคม พ.ศ. 2560

ระบบตะกร้าสินค้า(Shopping Cart) ตอนที่ 1 หยิบสินค้าใส่ตะกร้า(Add To Cart) , แก้ไขจำนวน , ลบรายการสินค้าในตะกร้า

ระบบตะกร้าสินค้า(Shopping Cart) ตอนที่ 1 หยิบสินค้าใส่ตะกร้า(Add To Cart) , แก้ไขจำนวน , ลบรายการสินค้าในตะกร้า

   ได้เวลาที่ต้องอัปเดตบทความกันซะหน่อยแล้วคับ เดือนนี้มีบทความให้ท่านได้อ่าน เพียงแค่บทความเดียวเท่านั้นเอง เหตุผลที่หายไปไม่ใช่ว่าผมติดธุระ งานยุ่งอะไรหรอกคับ เป็นเพราะความขี้เกียจมากกว่า สำหรับเนื้อหาการทำระบบ E-Commerce ด้วย PHP + MySQL ในวันนี้ ผมจะสอนท่านทำตะกร้าสินค้า(Shopping Cart) โดยตอนนี้จะสอน Add To Cart กับ Update จำนวนสินค้า ลบสินค้าในตะกร้ากันก่อนคับ  มาดูผลลัพธ์กันก่อนเลยคับ ให้ท่านคลิกที่Iconรูปตะกร้า
    สำหรับแนวคิดของการทำระบบนี้ของผม คือ การสร้างตัวแปรแบบ Session ขึ้นมา เพื่อเก็บค่าข้อมูลของสินค้าที่ลูกค้าคลิกสั่งซื้อ ดังรูป
แสดงการคลิกสั่งซื้อสินค้า
เมื่อลูกค้าคลิกที่รูปตะกร้าสินค้า จะได้ผลลัพธ์ดังรูป
ไฟล์ showcart.php แสดงสินค้าในตะกร้า
แสดงสินค้าในตะกร้าสินค้า โดยมีตรวจสอบด้วยว่า หากลูกค้าเลือกสินค้าซ้ำกัน ให้จำนวนสินค้าบวกเพิ่มอีกหนึ่ง

อันดับแรกให้ท่านไปที่ไฟล์ function.php ให้แก้ไขLinkของรูป ไอคอน Add To Cart ผมได้เพิ่มเติม
Code บางส่วนของไฟล์นี้ ให้ท่าน Copy Code ตามลิงค์>>function.php นี้ไปทับของเดิม

ต่อมา ให้ท่านสร้างไฟล์ ชื่อ showcart.php กับ chkcart.php
ไฟล์ chkcart.php  ให้ท่านพิมพ์ Code PHP เข้าไป ดังนี้
<?php
session_start();
require_once("config.php");#เรียกไฟล์เชื่อมต่อกับฐานข้อมูล
if(isset($_GET["cartid"])){#Add to cart
$cid=$_GET["cartid"];
$_SESSION["cartcount"]++;
$cartcount=$_SESSION["cartcount"];
$CItemCount="cart$cartcount";
$CartStatus="";#เอาไว้เก็บสถานะสินค้าว่าลูกค้าเลือกซ้ำหรือไม่
$rs_showpd=$conn->Execute("SELECT * FROM tb_product WHERE pd_id=".$cid."");
if(count($_SESSION["cartNumber"])!=0 ){
foreach($_SESSION["cartNumber"] as $RecCart){
if($_SESSION[$RecCart][0]==$cid){#หากสินค้าซ้ำกับของเดิม(โดยตรวจสอบจาก ID ของสินค้า)
$_SESSION[$RecCart][1]++;#เพิ่มจำนวนสินค้า
$CartStatus="double";#เปลี่ยนสถานะ
}
}
}
if($CartStatus==""){#สถานะเป็นค่าว่าง แสดงว่าสินค้าไม่ซ้ำกับของเดิม
$_SESSION[$CItemCount][0]=$cid;
$_SESSION[$CItemCount][1]=1;
$_SESSION[$CItemCount][2]=$rs_showpd->fields["pd_price"];
$_SESSION["cartNumber"][$cartcount]=$CItemCount;#ตำแหน่งของแต่ละเรคคอร์ดของสินค้า
}
}
##################################################################
if(isset($_GET["del"])){#ต้องการจะลบสินค้า
$RecDel=$_GET["del"];
foreach($_SESSION["cartNumber"] as $RecCart){#วนไปจนกว่าจะเจอแถวของสินค้าที่เลือกลบ
if($RecCart==$RecDel){
$CNum =preg_replace("/[^0-9]/", '', $RecCart); // คัดเอาเฉพาะตัวเลข เช่น cart1 จะได้ ค่า 1 เป็นต้น
unset($_SESSION['cartNumber'][$CNum]); // unset แถวที่เก็บสินค้าที่ต้องการลบ
}
unset($_SESSION[$RecDel]);#unset ข้อมูลสินค้าที่เก็บไว้ทั้งหมด
}
}
##################################################################
if(isset($_POST["bt_edit"])){#ต้องการแก้ไขจำนวนสินค้า
$pdid=$_POST["pd_id"];#รหัสของสินค้าทั้งหมด(จัดเก็บไว้ในรูป Array)
$cartRows =$_POST["cartRows"];#จำนวน Record ของแถวทั้งหมดของสินค้า(จัดเก็บไว้ในรูป Array)
$pamount=$_POST["pd_amount"];#จำนวน Record ของสินค้า(จัดเก็บไว้ในรูป Array)
for($i=0;$i<=(count($cartRows)-1);$i++){#วนลูปไปทีละแถวเพื่ออัพเดทจำนวนสินค้า
if($pamount[$i]>0){#เอาเฉพาะจำนวนสินค้าที่มากกว่า0
$rs_record=$conn->Execute("SELECT pd_name,pd_amount FROM tb_product WHERE pd_id=".$pdid[$i]."");
if($pamount[$i]>$rs_record->fields[1]){#หากจำนวนที่ลูกค้าระบุมากกว่าจำนวนที่มีอยู่ในร้าน
echo "<script>";
echo "alert('คุณระบุจำนวนสินค้า(".$rs_record->fields["pd_name"].")มากกว่าจำนวนสินค้าในร้าน');";
echo "</script>";
$_SESSION[$cartRows[$i]][1] = $rs_record->fields[1];#เซตจำนวนสินค้าใหม่ให้มีค่าเืท่ากับจำนวนสินค้าในร้าน
}else{#หากจำนวนสินค้าที่ลูกค้าระบุน้อยกว่าหรือเืท่ากับจำนวนสินค้าที่มีอยู่ในร้าน
$_SESSION[$cartRows[$i]][1] = $pamount[$i] ; #เซตจำนวนสินค้าใหม่ให้มีค่าเท่ากับจำนวนที่ลูกค้าระบุ
}
}
}
}
echo "<script>window.location='showcart.php';</script>";#Redirect ไปยังหน้าตระกร้าสินค้าทุกครั้ง
?>

0 ความคิดเห็น:

แสดงความคิดเห็น


พื้นที่โฆษณา

Free Hosting

พื้นที่โฆษณา

Free Hosting
 

Copyright © สอนเขียนโปรแกรม html php css Java SQL jQuery XML Ajax Design by ScriptMasterWebDesign | Theme by ScriptMasterWebDesign | Powered by HosTing