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 ลบทีละ 1 รายการแล้วมีปัญหาครับ



 

ระบบตะกร้าสินค้า แบบ session ลบทีละ 1 รายการแล้วมีปัญหาครับ

 



Topic : 120971



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



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



cart_delete 1

จากรูปด้านบนนะครับ จะมีสินค้าในตะกร้า่ 2 รายการครับ
โดยถ้าผมกดลบรายการที่ 2 (ลบจากล่างขึ้นบน) จะไม่มีปัญหา
แต่ถ้าลบรายการที่ 1 (ลบจากบนลงล่าง) จะเจอปัญหาแบบภาพด้านล่างครับ
Session สินค้าอื่นยังอยู่ แต่ตารางว่างปล่าว

cart_delete 2

โค้ดในส่วนของการลบ
Code (PHP)
    $del_listid = $_GET['listid'];
    if($_SESSION['Cart'] <= '0'){
        unset($_SESSION['Cart']);
    } else {
        $_SESSION['Cart'] = $_SESSION['Cart']-1;
    }
    if(count($_SESSION['sesProductID']) == '1'){
        unset($_SESSION['sesProductID']);
        unset($_SESSION['sesProductName']);
        unset($_SESSION['sesProductType']);
        unset($_SESSION['sesProductQty']);
        unset($_SESSION['sesProductPrice']);
    } else {
        unset($_SESSION['sesProductID'][$del_listid]);
        unset($_SESSION['sesProductName'][$del_listid]);
        unset($_SESSION['sesProductType'][$del_listid]);
        unset($_SESSION['sesProductQty'][$del_listid]);
        unset($_SESSION['sesProductPrice'][$del_listid]);
    }


ปล.ประยุคจาก https://www.thaicreate.com/free-web-script/php-shopping-cart-session-array.html



Tag : PHP, MySQL, HTML/CSS







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-01-19 23:28:50 By : kuzaa516 View : 1594 Reply : 7
 

 

No. 1



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



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

ใช้ รหัสสินค้าใส่ไปแทน array 0 1 พวกนั้นครับ เวลา unset ออกก็ อิง รหัสไป






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-19 23:38:09 By : progamer2000
 


 

No. 2



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : progamer2000 เมื่อวันที่ 2016-01-19 23:38:09
รายละเอียดของการตอบ ::
พอจะตัวอย่างคร่าวๆให้หน่อยได้ไหมครับ ร่างรูปแบบ array ก็ได้ครับ ผมดีทำแล้ว งง เอง T T

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 00:01:31 By : kuzaa516
 

 

No. 3

Guest


//ajax delete cart item
// @index = index of array  
// @index + 1 = total product
function delete() {
    $id = $_POST['id']; //product id
    $index = array_search($id, $_SESSION['id']); //search id in session
    if (strval($index) !== "") { //found
        $_SESSION['index'] = intval($_SESSION['index']) - 1; //total product - 1
        unset($_SESSION['id'][$index]); //delete id
        unset($_SESSION['name'][$index]);  //delete name
        unset($_SESSION['price'][$index]);  //delete price
        unset($_SESSION['qty'][$index]);  //delete qty
    }
    show(); //call display function for refresh cart
}


เผื่องงเอา function add ไปด้วย

//ajax add cart item
// @index = index of array
// @index + 1 = total product
function add() {
    $id = $_POST['id'];
    $name = $_POST['name'];
    $price = $_POST['price'];
    if (!isset($_SESSION['index'])) { // if first item
        $_SESSION['index'] = 0; 
        $_SESSION['id'][0] = $id;
        $_SESSION['name'][0] = $name;
        $_SESSION['price'][0] = $price;
        $_SESSION['qty'][0] = 1;
    } else {
        //search id
        $index = array_search($id, $_SESSION['id']); //search id in session
        //if found (increase item qty)
        if (strval($index) !== "") {
            $_SESSION['qty'][$index] = intval($_SESSION['qty'][$index]) + 1; //qty +1
        } else {
            //not found (new item)
            $_SESSION['index'] = intval($_SESSION['index']) + 1;
            $new_index = $_SESSION['index'];
            $_SESSION['id'][$new_index] = $id;
            $_SESSION['name'][$new_index] = $name;
            $_SESSION['price'][$new_index] = $price;
            $_SESSION['qty'][$new_index] = 1;
        }
    }
    show();//call display function for refresh cart
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 00:25:31 By : noMerzy
 


 

No. 4



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



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

ตอบความคิดเห็นที่ : 3 เขียนโดย : noMerzy เมื่อวันที่ 2016-01-20 00:25:31
รายละเอียดของการตอบ ::
มันก็เหมือนโค้ดผมไม่ใช่หรอครับ เพียงแต่ของคุณใช้เป็น function
ยังแก้ไม่ได้นะครับ ลองเอาโค้ดนี้มาใช้แล้วก็เหมือนเดิมครับ ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 01:45:15 By : kuzaa516
 


 

No. 5



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



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

อะให้ เอาไปปรับเองนะครับ

Code (PHP)
function AddToCart(){
  $lang = $_SESSION['LANG'];
  $code = $_GET['code'];
  $qty = $_GET['qty'];
  if(isset($_SESSION[CART]['ORDER'][$code])){
    $_SESSION[CART]['ORDER'][$code]['quantity'] = $_SESSION[CART]['ORDER'][$code]['quantity'] + $qty;
    $_SESSION[CART]['ORDER'][$code]['amount'] = $_SESSION[CART]['ORDER'][$code]['quantity'] * $_SESSION[CART]['ORDER'][$code]['net_total'];
  }else{
    $obj = new clsShopping();  
    $product = $obj->LoadProductDetail($code);
    $product['quantity'] = $qty;
    $product['pic'] = Thumbnail($product['filepic'], 47);
    $product['name'] = $product["name_$lang"];
    $product['unitprice'] = $product["price"];//check package
    $product['discount_total'] = ($product['discount'] * $product["price"] / 100);//check package
    $product['net_total'] = $product["price"] - $product['discount_total'];//check package
    $_SESSION[CART]['ORDER'][$code] = $product;
  }
  
  LoadOrder();
}


function LoadOrder(){
  $obj = new clsShopping();  
  $config = $obj->LoadConfig();
  
  $result['sum']['total'] = 0;
  $result['sum']['discount_total'] = 0;
  $result['sum']['transfer_total'] = 0;
  $result['sum']['net_total'] = 0;
  $result['cart'] = array();
  
  if(!empty($_SESSION[CART]['ORDER'])){
  
    foreach($_SESSION[CART]['ORDER'] as $i => $order){
      $order['amount'] = $order['unitprice']  * $order['quantity'];

      $result['cart'][] = $order;
      $result['sum']['discount_total'] += $order['discount_total'] * $order['quantity'];
      $result['sum']['total'] += $order['unitprice']  * $order['quantity'];
    }
  
  }

  
  $result['sum']['net_total'] = $result['sum']['total'] - $result['sum']['discount_total'];
  
  if($config['shipping_min'] > $result['sum']['net_total']){
    $result['sum']['transfer_total'] = $config['shipping_fee'];
    $result['sum']['net_total'] += $config['shipping_fee'];
  }
  
  $result['sum']['cnt'] = count($_SESSION[CART]['ORDER']);
  $result['sum']['net_total'] = ceil($result['sum']['net_total']);
  
  $_SESSION[CART]['SUM'] = $result['sum'];
  
  echo json_encode($result);  
}



ระบบมันจะประมาณนี้

1

2

3


ประวัติการแก้ไข
2016-01-20 02:03:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 01:59:59 By : progamer2000
 


 

No. 6



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



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

ตัว array มันจะได้มาประมาณนี้ ที่วงกลมดำ คือรหัสสินค้า

4
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 02:06:44 By : progamer2000
 


 

No. 7



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



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : progamer2000 เมื่อวันที่ 2016-01-20 02:06:44
รายละเอียดของการตอบ ::
*0* ขอบคุณมากครับพี่
แก้ได้แล้วครับ ใช้รหัสสินค้าเป็นค่าหลักตามที่พี่บอกเลย
เอาไปใช้งาน ง่ายขึ้นเยอะเลย ^ ^

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-20 10:27:45 By : kuzaa516
 

   

ค้นหาข้อมูล


   
 

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