Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > รบกวนช่วยดูโค้ด Shopping Cart ที่สามารถ Customize สินค้าได้ครับ



 

รบกวนช่วยดูโค้ด Shopping Cart ที่สามารถ Customize สินค้าได้ครับ

 



Topic : 107969

Guest




โค้ดนี้ผมอ้างอิงจาก https://www.thaicreate.com/free-web-script/php-shopping-cart-session-array.html

รบกวนช่วยดูโค้ด Shopping Cart ที่สามารถ Customize สินค้าได้ ตามรูปนะครับ



คือตอนนี้ติดตรงเชคว่ามี m_id และ ingre_id ถูกหยิบไปแล้วครับ ตอนนี้ใช้โค้ดเดิมๆ มันจะเช็คแค่ m_id เลยยังแสดงไม่ถูก

โค้ดครับ

addCart.php
Code (PHP)
<?
require("config.inc.php");

ob_start();

$mg_no = $_GET['mg_no'];
$page = $_GET['page'];

if(!isset($_SESSION["intLine"]))
{

	 $_SESSION["intLine"] = 0;
	 $_SESSION["strProductID"][0] = $_GET['m_id'];
	 $_SESSION["strIngreID"][0] = $_POST['ingre']; // บรรทัดที่เพืม
	 $_SESSION["strQty"][0] = 1;
	 header("location:menu.php?mg_no=$mg_no&page=$page"); 
}
else
{
	
	$key = array_search($_GET['m_id'], $_SESSION["strProductID"]);
	$key2 = array_search($_GET['ingre'], $_SESSION["strIngreID"]);
	
	//if ($key != "" &&  $key2 != "")
	if ((string)$key != "") 
	{
		 $_SESSION["strQty"][$key] = $_SESSION["strQty"][$key] + 1;
		
	}
	else
	{
		
		 $_SESSION["intLine"] = $_SESSION["intLine"] + 1;
		 $intNewLine = $_SESSION["intLine"];
		 $_SESSION["strProductID"][$intNewLine] = $_GET['m_id'];
		 $_SESSION["strIngreID"][$intNewLine] = $_POST['ingre'];  // บรรทัดที่เพืม
		 $_SESSION["strQty"][$intNewLine] = 1;
	}
	
	 header("location:menu.php?mg_no=$mg_no&page=$page");

}

?>




cart.php
Code (PHP)
<?
session_start();
require ("connect_sql.php");
//require("config_detail.inc.php");

//echo $_SESSION["strIngreID"][i];

$Total = 0;
$SumTotal = 0;

for($i=0;$i<=(int)$_SESSION["intLine"];$i++)
  {
	  if($_SESSION["strProductID"][$i] != "")
	  {
		$strSQL = "SELECT * FROM m_menu_tb JOIN m_ingredient_tb WHERE m_id = '".$_SESSION["strProductID"][$i]."' AND ingre_id ='".$_SESSION["strIngreID"][$i]."'  ";
		$objQuery = mysql_query($strSQL)  or die(mysql_error());
		$objResult = mysql_fetch_array($objQuery);
		$Total = $_SESSION["strQty"][$i] * $objResult["i_price"];
		$SumTotal = $SumTotal + $Total;
	  ?>
      
        <center><table width="95%" border="0" cellspacing="0" cellpadding="0">
          <tr>
          	<td width="81%" valign="top"><span style='border-bottom:#000 1px dotted'><? //=$_SESSION["strProductID"][$i];?><?=$objResult["m_name"];?></span> x <?=$_SESSION["strQty"][$i];?><br/>&nbsp;: <?=$objResult["i_name"];?></td>
            <td width="16%" valign="top"><?=$objResult["i_price"];?><br /><br /></td>
            <td width="3%" valign="top"><a href="delete.php?<? echo "mg_no=".$mg_no."&page=".$page ?>&Line=<?=$i;?>"><img src="images/icon_delete_16x16.png"  border="0" title ="นำออกจากรายการ"/></a></td>
          </tr>
          <?
	  }
  }
  ?>
        </table> </center>

</td>
  </tr>
  <tr>
    <td width="56%">
	
<?
	if($SumTotal > 0)
	{
?><hr>
<b>Total:
        <font size=+1><?=number_format($SumTotal,2); echo $curency;  ?> </font>
    </b><br /></td>
    <td width="44%">
<a href="checkout.php"><br /><img src="images/feature-head-checkout1.png" border="0" title = "ไปหน้าสรุปการสั่งซื้อ" /></a>

</td> 
  </tr>
  <tr>
    <td colspan="2" align="center"><br><font size=-1>หลังจากคลิกจะมีหน้าให้ยืนยันอีกรายการครั้งค่ะ *</font></td>
    </tr>  
</table>  
<?	} mysql_close();  ?> 



ขอบพระคุณครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-04-29 08:12:25 By : นัส View : 1060 Reply : 5
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

คุณแค่ไป Update ตัว Session ใตำแหน่งของ Qty น่ะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-29 09:33:30 By : mr.win
 


 

No. 2

Guest


คือปัญหาตอนนี้ไม่ใช่เรื่องจำนวนอะครับ แต่เป็นเวลาที่ต้องการเลือกเมนูนี้แต่คนละวัตถุดิบ มันจะไม่สร้างบรรทัดใหม่ให้ แต่จะไป + ของเดิม และแสดงราคาไม่ถูกต้อง เพราะวัตถุดิบในเมนูเดียวกันแต่คนละอย่างจะคนละราคาครับ

ที่คิดๆไว้เบื้องต้นคือจะสร้างเซสชั่นใหม่ไว้เก็บค่า m_id + ingre_id แล้วเอาไว้เช็ค แต่ยังงๆ อยู่เลยครับ - *-
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-29 09:48:48 By : นัส
 

 

No. 3

Guest


เพื่อความไม่สับสนดูรูปนี้ก็ได้ครับ ถ้าเลือกเมนูเดียวกันแต่คนละราคา มันดันไปใส่ไว้อันเดียวกัน ไม่แสดงค่า ingree_id ใหม่และก็คูณผิด (ใช้ราคาเดิม) ที่อยากให้เป็นคือสร้าง intLine ใหม่ครับ ติดตรงวิธีเชคนี่แหละ

wrongcal
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-29 10:10:00 By : นัส
 


 

No. 4



โพสกระทู้ ( 3,750 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

Code (PHP)
<?
require("config.inc.php");

ob_start();

$mg_no = $_GET['mg_no'];
$page = $_GET['page'];

if(!isset($_SESSION["intLine"]))
{

	 $_SESSION["intLine"] = 0;
	 $_SESSION["strProductID"][0] = $_GET['m_id'];
	 $_SESSION["strIngreID"][0] = $_POST['ingre']; // บรรทัดที่เพืม
	 $_SESSION["strQty"][0] = 1;
	 header("location:menu.php?mg_no=$mg_no&page=$page"); 
}
else
{
	// เอา 2 บรรทัดนี้ออกเลยครับ ถ้าอยากให้ขึ้นบรรทัดใหม่ มันจะมองสินค้าเป็นคนละตัวกัน //
/*
	$key = array_search($_GET['m_id'], $_SESSION["strProductID"]);
	$key2 = array_search($_GET['ingre'], $_SESSION["strIngreID"]);
	
	//if ($key != "" &&  $key2 != "")
	if ((string)$key != "") 
	{
		 $_SESSION["strQty"][$key] = $_SESSION["strQty"][$key] + 1;
		
	}
	else
	{
		/*
เสร็จแล้วก็เขียน ตรวจสอบ ว่า ตะกร้าสินค้าที่มี ตรงกับที่เลือกเข้ามาหรือยัง
if($_SESSION["strProductID"]==$_POST['productID']){
ถ้ามันมีอยู่แล้วก็ให้มันเช็คอีกรอบว่า รายการย่อย มีหรือยัง
if($_SESSION["strIngreID"]==$_POST['strLngreID']){
 $_SESSION["strQty"][$key] = $_SESSION["strQty"][$key] + 1; ถ้ามีแล้วก็ให้ + 1
}
}
พอดีเขียนลวกๆไม่ได้ทดสอบ คุณเอาไปดัดแปลงเองนะครับ

		 $_SESSION["intLine"] = $_SESSION["intLine"] + 1;
		 $intNewLine = $_SESSION["intLine"];
		 $_SESSION["strProductID"][$intNewLine] = $_GET['m_id'];
		 $_SESSION["strIngreID"][$intNewLine] = $_POST['ingre'];  // บรรทัดที่เพืม
		 $_SESSION["strQty"][$intNewLine] = 1;
	#}
	
	 header("location:menu.php?mg_no=$mg_no&page=$page");

}

?>



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-29 10:18:39 By : Dragons_first
 


 

No. 5

Guest


ทำได้แล้วครับ !!!

ลองแนวทางของพี่ข้างบนแล้วไม่เวิร์คครับ เพราะค่า 2 ตัวถูกดึงมาจาก 2 ตารางซึ่งอาจเป็นไปได้ว่าเคบมีการ add ทั้ง 2 ค่า จาก คนละเมนู ผลเลยยังเพี้ยนๆครับ

วิธีการที่ผมใช้ ง่ายสุดเลยคืนเลิกสนใจ ID เก่า สร้างใหม่ โดยเอาสองค่ามาต่อกัน ทีนี้มันก็ยูนีคแว้ว เย่ๆๆๆ


เอาโค้ดที่แก้มาฝากครับ เผื่อใครอยากลองทำแนวนี้ แก้นิดเดียวเอง งมอยู่ตั้งนาน


Code (PHP)
<?
require("config.inc.php");

ob_start();

$mg_no = $_GET['mg_no'];
$page = $_GET['page'];

$checkM = $_GET['m_id'].$_POST['ingre'];  // สร้างเพื่อตรวจ

if(!isset($_SESSION["intLine"]))
{

	 $_SESSION["intLine"] = 0;
	 $_SESSION["strProductID"][0] = $_GET['m_id'];
	 $_SESSION["strIngreID"][0] = $_POST['ingre']; // บรรทัดที่เพืม
	 $_SESSION["strQty"][0] = 1;
	 $_SESSION["strCheck"][0] = $checkM; //***เก็บค่าใหม่
	 header("location:menu.php?mg_no=$mg_no&page=$page"); 
 
}
else
{
	//$key = array_search($_GET['m_id'], $_SESSION["strProductID"]);
	$keycheck = array_search($checkM, $_SESSION["strCheck"]);
	//if ((string)$key != "") 
	//if ($_SESSION["checkM"] == $_GET['m_id'].$_POST['ingre'])
	if ((string)$keycheck != "") 
	{
		//$_SESSION["strQty"][$key] = $_SESSION["strQty"][$key] + 1;
		$_SESSION["strQty"][$keycheck] = $_SESSION["strQty"][$keycheck] + 1;
		
	}
	else
	{
		
		 $_SESSION["intLine"] = $_SESSION["intLine"] + 1;
		 $intNewLine = $_SESSION["intLine"];
		 $_SESSION["strProductID"][$intNewLine] = $_GET['m_id'];
		 $_SESSION["strIngreID"][$intNewLine] = $_POST['ingre'];  // บรรทัดที่เพืม
		 $_SESSION["strQty"][$intNewLine] = 1;
		 $_SESSION["strCheck"][$intNewLine] = $checkM; ///****
		 
	}
	
	 header("location:menu.php?mg_no=$mg_no&page=$page");

}

?>





Code (PHP)
<style type="text/css">
.jkfgjkfkfg {
	text-align: right;
}
</style>

<center><font size=-1>
<table width="285" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2"><img src="images/shopping_cart.png" /></td>
    </tr>
  <tr>
    <td colspan="2"><?
session_start();
require ("connect_sql.php");
//require("config_detail.inc.php");

$Total = 0;
$SumTotal = 0;

for($i=0;$i<=(int)$_SESSION["intLine"];$i++)
  {
	  //if($_SESSION["strProductID"][$i] != "")
	  if($_SESSION["strCheck"][$i] != "")
	  {
		$strSQL = "SELECT * FROM m_menu_tb JOIN m_ingredient_tb WHERE m_id = '".$_SESSION["strProductID"][$i]."' AND ingre_id ='".$_SESSION["strIngreID"][$i]."'  ";
		$objQuery = mysql_query($strSQL)  or die(mysql_error());
		$objResult = mysql_fetch_array($objQuery);
		$Total = $_SESSION["strQty"][$i] * $objResult["i_price"];
		$SumTotal = $SumTotal + $Total;
		$price = $objResult["i_price"];
		
	  ?>
      
        <center><table width="95%" border="0" cellspacing="0" cellpadding="0">
          <tr>
          	<td width="80%" valign="top"><span style='border-bottom:#000 1px dotted'><? //=$_SESSION["strProductID"][$i];?><?=$objResult["m_name"];?></span> (<?=number_format($price,0);?>x<?=$_SESSION["strQty"][$i];?>)<br/>&nbsp;: <?=$objResult["i_name"];?></td>
            <td width="14%" align="right" valign="top" class="jkfgjkfkfg"><?=number_format($Total,0);?><br /><br /></td>
            <td width="6%" valign="top"><a href="delete.php?<? echo "mg_no=".$mg_no."&page=".$page ?>&Line=<?=$i;?>"><img src="images/icon_delete_16x16.png"  border="0" title ="นำออกจากรายการ"/></a></td>
          </tr>
          <?
	  }
  }
  ?>
        </table> </center>

</td>
  </tr>
  <tr>
    <td width="56%">
	
<?
	if($SumTotal > 0)
	{
?><hr>
<b>Total:
        <font size=+1><?=number_format($SumTotal,2); echo $curency;  ?> </font>
    </b><br /></td>
    <td width="44%">
<a href="checkout.php"><br /><img src="images/feature-head-checkout1.png" border="0" title = "ไปหน้าสรุปการสั่งซื้อ" /></a>

</td> 
  </tr>
  <tr>
    <td colspan="2" align="center"><br><font size=-1>หลังจากคลิกจะมีหน้าให้ยืนยันอีกรายการครั้งค่ะ *</font></td>
    </tr>  
</table>  
<?	} mysql_close();  ?> 
</center>

<!--
</body>
</html> -->




Code (PHP)
<?

$mg_no = $_GET['mg_no'];
$page = $_GET['page'];

	ob_start();
	session_start();

	$Line = $_GET["Line"];
	//$_SESSION["strProductID"][$Line] = "";
	$_SESSION["strCheck"][$Line] = "";
	$_SESSION["strQty"][$Line] = "";
	
	header("location:menu.php?mg_no=$mg_no&page=$page");
?>



โค้ดเก่า ผมยัง Comment ไว้นะครับ ดูเทียบกันได้เลย ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-29 12:05:09 By : นัส
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วยดูโค้ด Shopping Cart ที่สามารถ Customize สินค้าได้ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่