From b6083c10cb9be1ff89bce866d677505975df7507 Mon Sep 17 00:00:00 2001 From: 65160270 <65160270@go.buu.ac.th> Date: Sat, 22 Mar 2025 21:08:58 +0700 Subject: [PATCH] update-address --- shop-routes/order.js | 13 +++++++------ views/order-details.ejs | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/shop-routes/order.js b/shop-routes/order.js index 8b1c6b4..674b975 100644 --- a/shop-routes/order.js +++ b/shop-routes/order.js @@ -144,8 +144,9 @@ router.post('/create', isAuthenticated, async (req, res) => { }); // อัปเดตที่อยู่จัดส่งของออเดอร์ -router.post('/update-address', isAuthenticated, async (req, res) => { - const { orderId, newAddress } = req.body; +router.put('/update-address/:orderId', isAuthenticated, async (req, res) => { + const { shipping_address } = req.body; + const orderId = req.params.orderId; try { // ตรวจสอบว่าออเดอร์เป็นของผู้ใช้ปัจจุบัน @@ -155,19 +156,19 @@ router.post('/update-address', isAuthenticated, async (req, res) => { ); if (order.length === 0) { - return res.status(404).send('Order not found or unauthorized'); + return res.status(404).json({ success: false, message: 'Order not found or unauthorized' }); } // อัปเดตที่อยู่จัดส่ง await pool.query( 'UPDATE orders SET shipping_address = ? WHERE id = ?', - [newAddress, orderId] + [shipping_address, orderId] ); - res.send('Shipping address updated successfully'); + res.json({ success: true, message: 'Shipping address updated successfully' }); } catch (error) { console.error(error); - res.status(500).send('Error updating shipping address'); + res.status(500).json({ success: false, message: 'Error updating shipping address' }); } }); diff --git a/views/order-details.ejs b/views/order-details.ejs index d35b586..63d22c7 100644 --- a/views/order-details.ejs +++ b/views/order-details.ejs @@ -11,7 +11,11 @@ <div class="info-section"> <h3>Shipping Address</h3> - <p><%= order.shipping_address %></p> + <p id="currentAddress"><%= order.shipping_address %></p> + + <!-- Input สำหรับแก้ไขที่อยู่ --> + <input type="text" id="newAddress" placeholder="Enter new address"> + <button onclick="updateAddress(<%= order.id %>)">Update Address</button> </div> </div> @@ -37,4 +41,32 @@ <a href="/" class="continue-shopping">Continue Shopping</a> </div> </div> + +<script> + function updateAddress(orderId) { + const newAddress = document.getElementById("newAddress").value; + + if (!newAddress.trim()) { + alert("Please enter a valid address."); + return; + } + + fetch(`/order/update-address/${orderId}`, { + method: "PUT", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ shipping_address: newAddress }) + }) + .then(response => response.json()) + .then(data => { + if (data.success) { + document.getElementById("currentAddress").innerText = newAddress; + alert("Address updated successfully!"); + } else { + alert("Failed to update address."); + } + }) + .catch(error => console.error("Error:", error)); + } +</script> + <%- include('partials/footer') %> \ No newline at end of file -- GitLab