From 24d3ef2073231f7d3ac6a08d577bcb7f925e38e0 Mon Sep 17 00:00:00 2001 From: 65160270 <65160270@go.buu.ac.th> Date: Mon, 24 Mar 2025 15:31:28 +0700 Subject: [PATCH] update-edit --- shop-routes/cart.js | 3 ++- shop-routes/index.js | 26 +++++++++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/shop-routes/cart.js b/shop-routes/cart.js index 9e3aec5..607ccee 100644 --- a/shop-routes/cart.js +++ b/shop-routes/cart.js @@ -127,9 +127,10 @@ router.post('/remove', async (req, res) => { } }); +// เมื่อกดปุ่ม "Edit" จะบันทึกสินค้าที่ต้องการเปลี่ยนแปลง router.post('/edit', (req, res) => { const { cartItemId } = req.body; - req.session.editingItemId = cartItemId; // เก็บ ID ไว้ชั่วคราว + req.session.editingItemId = parseInt(cartItemId, 10); res.redirect('/'); // กลับไปเลือกสินค้าใหม่ }); diff --git a/shop-routes/index.js b/shop-routes/index.js index 22f835c..734e32a 100644 --- a/shop-routes/index.js +++ b/shop-routes/index.js @@ -5,7 +5,7 @@ const pool = require('../config/database'); console.log("Database Host:", process.env.DB_HOST); -// แสดงสินค้าในหน้าแรก +// แสดงสินค้าหน้าแรก router.get('/', async (req, res) => { try { const [products] = await pool.query('SELECT * FROM products WHERE stock > 0'); @@ -16,10 +16,8 @@ router.get('/', async (req, res) => { } }); -// เพิ่มสินค้าในตะกร้า (รองรับระบบ Edit) router.post('/add-to-cart', async (req, res) => { const { productId, quantity } = req.body; - try { const [productResult] = await pool.query('SELECT * FROM products WHERE id = ? AND stock > 0', [productId]); if (productResult.length === 0) { @@ -31,16 +29,22 @@ router.post('/add-to-cart', async (req, res) => { req.session.cart = []; } - // ถ้ากำลังแก้ไขสินค้า if (req.session.editingItemId) { - req.session.cart = req.session.cart.map(item => - item.id === parseInt(req.session.editingItemId) - ? { id: product.id, name: product.name, price: product.price, quantity: parseInt(quantity), stock: product.stock } - : item - ); - req.session.editingItemId = null; // ล้างค่า + // ลบสินค้าที่ต้องการเปลี่ยนออกก่อน + req.session.cart = req.session.cart.filter(item => item.id !== req.session.editingItemId); + + // เพิ่มสินค้าที่เลือกใหม่เข้าไป + req.session.cart.push({ + id: product.id, + name: product.name, + price: product.price, + quantity: parseInt(quantity), + stock: product.stock + }); + + req.session.editingItemId = null; // ล้างค่าหลังเปลี่ยนสินค้าเสร็จ } else { - // เพิ่มสินค้าปกติ + // เพิ่มสินค้าตามปกติ req.session.cart.push({ id: product.id, name: product.name, -- GitLab