Gitlab@Informatics

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

10

parent b29dcc51
Branches
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