From d2a91a2640343bf6bc670baae72b02151950299f Mon Sep 17 00:00:00 2001
From: 65160270 <65160270@go.buu.ac.th>
Date: Tue, 25 Mar 2025 16:32:08 +0700
Subject: [PATCH] update-server

---
 server.js      | 21 +++++++++++++++++++++
 views/cart.ejs | 28 +++++++++++++++++-----------
 2 files changed, 38 insertions(+), 11 deletions(-)

diff --git a/server.js b/server.js
index 948a9b9..bc89235 100644
--- a/server.js
+++ b/server.js
@@ -62,6 +62,27 @@ app.get('/order/checkout', isLoggedIn, (req, res) => {
     res.render('checkout');
 });
 
+app.post("/cart/update", async (req, res) => {
+    try {
+        const { cartItemId, quantity } = req.body;
+
+        if (quantity < 1) {
+            return res.status(400).json({ message: "Quantity must be at least 1" });
+        }
+
+        // อัปเดตจำนวนสินค้าในฐานข้อมูล
+        await pool.execute(
+            "UPDATE cart SET quantity = ? WHERE id = ?",
+            [quantity, cartItemId]
+        );
+
+        res.json({ success: true, message: "Cart updated" });
+    } catch (error) {
+        console.error("Update error:", error);
+        res.status(500).json({ message: "Update failed" });
+    }
+});
+
 app.get('/register', (req, res) => {
     res.render('register');
 });
diff --git a/views/cart.ejs b/views/cart.ejs
index e3456ed..896407c 100644
--- a/views/cart.ejs
+++ b/views/cart.ejs
@@ -63,17 +63,23 @@
             </div>
 
             <script>
-                document.querySelectorAll('.edit-btn').forEach(button => {
-                    button.addEventListener('click', (event) => {
-                        const cartItem = event.target.closest('.cart-item');
-                        const editButton = cartItem.querySelector('.edit-btn');
-                        const removeForm = cartItem.querySelector('.remove-form');
-
-                        // ซ่อนปุ่ม Edit
-                        editButton.style.display = 'none';
-
-                        // แสดงปุ่ม Remove
-                        removeForm.style.display = 'block';
+                document.querySelectorAll(".update-btn").forEach(button => {
+                    button.addEventListener("click", async (event) => {
+                        const cartItem = event.target.closest(".cart-item");
+                        const cartItemId = cartItem.dataset.id;
+                        const quantity = cartItem.querySelector("input[name='quantity']").value;
+            
+                        const response = await fetch('/cart/update', {
+                            method: 'POST',
+                            headers: { 'Content-Type': 'application/json' },
+                            body: JSON.stringify({ cartItemId, quantity })
+                        });
+            
+                        if (response.ok) {
+                            window.location.reload(); // รีเฟรชหน้าหลังอัปเดต
+                        } else {
+                            alert("Failed to update cart.");
+                        }
                     });
                 });
             </script>
-- 
GitLab