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 > อยากทราบวิธีการลบและแก้ไขข้อมูล session ของตะกร้าสินค้า php ครับ



 

อยากทราบวิธีการลบและแก้ไขข้อมูล session ของตะกร้าสินค้า php ครับ

 



Topic : 050589



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



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




ผมสร้างระบบตะกร้าสินค้าตามหนังสือ PHP สำหรับงาน E-Commerce แต่ในหนังสือเวลาลบหรือแก้ไขข้อมูลเราต้องเลือกลบ หรือเปลี่ยนเลขจำนวนแก้ไขข้อมูลก่อนแล้วคลิกปุ่มแก้ไขข้อมูลซึ่งมีอยู่ปุ่มเดียวแก้ไขทั้งตาราง ผมต้องการให้มีปุ่มลบและแก้ไขข้อมูลในแต่ละแถว ซึ่งถ้าผมเอาปุ่มแก้ไขข้อมูลไปไว้ในแต่ละแถวเลย เวลาแก้ไขช่องอื่นแล้วมาคลิกมันก็แก้ไขหมดทั้งตาราง ส่วนปุ่มลบผมทำเป็น hyperlink แล้วให้คลิกลบ มันมี error ที่ foreach ของไฟล์ update_cart ครับ

นี่เป็นไฟล์ show_cart ไว้แสดงสินค้าใน session ที่ผมจะแกให้มีปุ่มลบและแก้ไขในแต่ละแถวครับ

Code (PHP)
<? if (sizeof($cart) > 0) { ?>
<form action="update_cart.php" method="post">
     <table width="87%" border="1" align="center" cellpadding="5" cellspacing="1">
     <tr>
       <th width="32">ลบ</th>
       <th width="53">ลำดับที่</th>
       <th width="63">ชื่อสินค้า</th>
       <th width="39">ราคา</th>
       <th width="59">จำนวน</th>
       <th width="66">ราคารวม</th>
     </tr>
<?      $i = 0; 
          $sum = 0;

foreach ($cart as $id => $item) { 
?>
     <tr>
     <td align="center"><input type="checkbox" name="remove[]" value="<?=$id?>" />

       <a href=update_cart.php?remove[]=<?=$id?>>[ลบ]</a>     // ตรงนี้ผมใส่เข้าไปแล้วมัน error ที่ foreach ทั้ง 2 อัน ของไฟล์ update_cart ครับ</td>

     <td align="center"><?=$i+1?></td>
     <td><?=$item["name"]?></td>
     <td align="right"><?=number_format($item["price"])?></td>
     <td align="center">
     <input type="text" name="amount[<?=$id?>]" size="2" value="<?=$item["amount"]?>" style="text-align: right" />

     <input type="submit" name="edit" id="edit" value="แก้ไข" /> // ปุ่มนี้ผมเพิ่มเข้าไปแต่เวลาเลือกแก้ไขแล้วมันจะแก้ไขหมดทั้งตารางเลยครับ </td>

       <td align="right"><?=number_format($item["price"]*$item["amount"])?></td>
     </tr>
<?      $sum += $item["price"]*$item["amount"];
          $i++;
   } 
?>
     <tr>
       <td colspan="5" align="right">ราคารวมทั้งหมด</td>
       <td align="right"><?=number_format($sum)?></td>
     </tr>
     <tr>
       <td align="center" colspan="6">
         <input type="button" value="กลับไปที่ผลการค้นหา" onclick="window.location='index.php'" />
         <input type="submit" value="แก้ไขสินค้าในตะกร้า" />
         <input type="button" value="ดำเนินการสั่งซื้อ" onclick="window.location='shipping_form.php';" />
     </td>
     </tr>
</table>
</form> 


เป็นโค๊ด update_cart.php ครับเวลาคลิก ที่ลิ้งค์ [ลบ] ใน show_cart.php มันจะ error ที่ foreach สองอันแรกครับ
Code (PHP)
<?
session_start();

// Prepare Variables
$removes = isset($_REQUEST["remove"]) ? $_REQUEST["remove"] : array();
$amounts = $_REQUEST["amount"];
$cart = &$_SESSION["cart"];

// Check Input
$error = "";

foreach ($amounts as $amount) {      //มันบอกว่า error บรรทัดนี้ครับพอคลิกที่ [ลบ]
     if ($amount == "") {
     $error .= "ไม่ระบุจำนวน<br />";
     break;
}
  else if (!is_numeric($amount)) {
  $error .= "จำนวนไม่เป็นตัวเลข<br />";
  break;
   }
}

     // Action
       if ($error == "") {

     // Update
       foreach ($amounts as $id => $amount) {                // มันบอกว่า error บรรทัดนี้ด้วยครับพอครับที่ [ลบ]
       $cart[$id]["amount"] = $amount;
}

// Remove
       foreach ($removes as $id) {
       unset($cart[$id]);
   }
}

// Show Result
if ($error == "") {
header("location:show_cart.php");
return;
}
else {
$result = $error
. "<a href='#' onclick='history.back(); return false;'>กลับไป</a>";
}
?> 




Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-10-22 01:40:51 By : mmc01 View : 3938 Reply : 2
 

 

No. 1



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

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

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

ขั้นแรกจะต้องหาคำสั่งของ array ใน session ที่จะลบก่อนน่ะครับ แล้วก้ส่งเงื่อนไขไปลบแบบง่าย ๆ ครับ เช่น

Code
$_SESSION["cart"][$i] = null;


$i คือตำแหน่งที่จะลบ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-22 06:37:59 By : webmaster
 


 

No. 2



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



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


ตอนนี้ลบไได้แล้วขอบคุณครับ แต่แก้ไขยังไม่ได้ เวลาแก้ไขช่องอื่นแล้วคลิกปุ่มแก้ไขช่องไหนมันก็แก้ไขหมดทั้งตาราง อยากให้คลิกปุ่มแก้ไขของแถวไหนก็แก้ไขเฉพาะแถวนั้นครับ ไม่ทราบว่าทำไงถึงจะรับค่าจากช่องกรอกตัวเลข (Text Filed) แล้วส่งไปแก้ไขที่ update_cart.php ได้ครับ ไปครับ หรือว่าต้อง ใส่ form ไว้ในแต่ละแถวครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-22 20:28:03 By : mmc01
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากทราบวิธีการลบและแก้ไขข้อมูล session ของตะกร้าสินค้า php ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่