diff --git a/shop-routes/order.js b/shop-routes/order.js index 8b1c6b4cf29c593bfe6176350066d649d9f2a27a..674b975cafe3abd96b801fdd2526a5281ee9141e 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 d35b58627bc886272fcbd4493f131a346a5faafe..63d22c7e79100c58672c717e4e7b8b45d55bc2bb 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