Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit 7b2f9201 authored by 65160381's avatar 65160381
Browse files

10

parent b29dcc51
No related branches found
No related tags found
No related merge requests found
Pipeline #629 passed with warnings
......@@ -149,6 +149,32 @@ app.post('/api/products', async (req, res) => {
}
});
// Get order details by order ID
app.get('/api/orders/:orderId', (req, res) => {
const orderId = parseInt(req.params.orderId);
const order = orders.find(o => o.order_id === orderId);
if (order) {
res.json(order);
} else {
res.status(404).send('Order not found');
}
});
// Update order details by order ID
app.put('/api/orders/:orderId', (req, res) => {
const orderId = parseInt(req.params.orderId);
const { status, shipping_address } = req.body;
const order = orders.find(o => o.order_id === orderId);
if (order) {
order.status = status || order.status;
order.shipping_address = shipping_address || order.shipping_address;
res.send('Order updated successfully');
} else {
res.status(404).send('Order not found');
}
});
// ตัวอย่างของการดึงข้อมูลสินค้าใน Node.js (Express)
app.get('/api/products', async (req, res) => {
const searchQuery = req.query.search || ''; // รับคำค้นจาก query string
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Edit Order</title>
<link rel="stylesheet" href="styles/home.css">
</head>
<body>
<header>
<h1>Edit Your Order</h1>
</header>
<div id="order-details">
<!-- Order details will be dynamically loaded here -->
</div>
<button id="update-order-button" onclick="updateOrder()">Update Order</button>
<footer>
<p>&copy; 2025 ASA</p>
</footer>
<script>
// Load order details from the API
async function loadOrderDetails() {
try {
const orderId = 1; // Replace with dynamic order ID
const response = await fetch(`/api/orders/${orderId}`);
const order = await response.json();
const orderDetailsContainer = document.getElementById('order-details');
orderDetailsContainer.innerHTML = `
<h2>Order ID: ${order.order_id}</h2>
<div>
<label for="order-status">Order Status:</label>
<select id="order-status">
<option value="pending" ${order.status === 'pending' ? 'selected' : ''}>Pending</option>
<option value="shipped" ${order.status === 'shipped' ? 'selected' : ''}>Shipped</option>
<option value="delivered" ${order.status === 'delivered' ? 'selected' : ''}>Delivered</option>
</select>
</div>
<div>
<label for="order-shipping-address">Shipping Address:</label>
<input type="text" id="order-shipping-address" value="${order.shipping_address}" required>
</div>
<div>
<label for="order-products">Products:</label>
<ul id="order-products">
${order.products.map(product => `
<li>${product.name} - $${product.price} x ${product.quantity}</li>
`).join('')}
</ul>
</div>
`;
} catch (error) {
console.error('Error loading order details:', error);
}
}
// Update order details
async function updateOrder() {
const orderId = 1; // Replace with dynamic order ID
const status = document.getElementById('order-status').value;
const shippingAddress = document.getElementById('order-shipping-address').value;
try {
const response = await fetch(`/api/orders/${orderId}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
status: status,
shipping_address: shippingAddress
})
});
if (response.ok) {
alert('Order updated successfully!');
window.location.href = '/'; // Redirect to home page or orders page
} else {
const errorMessage = await response.text();
alert('Error updating order: ' + errorMessage);
}
} catch (error) {
console.error('Error updating order:', error);
alert('Error updating order');
}
}
// Load order details when page loads
window.onload = loadOrderDetails;
</script>
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment