Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit 803b0bdf authored by 65160381's avatar 65160381
Browse files

9.8

parent 22e17c17
No related branches found
No related tags found
No related merge requests found
Pipeline #623 passed with warnings
...@@ -149,6 +149,22 @@ app.post('/api/products', async (req, res) => { ...@@ -149,6 +149,22 @@ app.post('/api/products', async (req, res) => {
} }
}); });
// ตัวอย่างของการดึงข้อมูลสินค้าใน Node.js (Express)
app.get('/api/products', async (req, res) => {
const searchQuery = req.query.search || ''; // รับคำค้นจาก query string
try {
// ดึงข้อมูลสินค้าจากฐานข้อมูล (สามารถเพิ่มการค้นหาจาก searchQuery ได้)
const query = `SELECT product_id, product_name, product_img, product_price FROM products WHERE product_name LIKE ?`;
const [rows] = await pool.query(query, [`%${searchQuery}%`]);
res.json(rows); // ส่งข้อมูลสินค้าเป็น JSON
} catch (error) {
console.error('Error fetching products:', error);
res.status(500).send('Error fetching products');
}
});
app.get('/api/getUser', (req, res) => { app.get('/api/getUser', (req, res) => {
if (req.session.user) { if (req.session.user) {
res.json({ res.json({
......
...@@ -46,16 +46,18 @@ ...@@ -46,16 +46,18 @@
const response = await fetch(`/api/products?search=${searchQuery}`); const response = await fetch(`/api/products?search=${searchQuery}`);
const products = await response.json(); const products = await response.json();
console.log('Fetched Products:', products); // เพิ่มการตรวจสอบข้อมูล console.log('Fetched Products:', products); // เพิ่มการตรวจสอบข้อมูล
renderProducts(products); renderProducts(products); // เรียกฟังก์ชัน renderProducts เพื่อนำข้อมูลไปแสดง
} catch (error) { } catch (error) {
console.error('Error fetching products:', error); console.error('Error fetching products:', error);
} }
} }
// ฟังก์ชันที่ใช้ในการแสดงสินค้าบนหน้าเว็บ
function renderProducts(products) { function renderProducts(products) {
const productContainer = document.querySelector('.products'); const productContainer = document.querySelector('.products');
productContainer.innerHTML = ''; productContainer.innerHTML = ''; // เคลียร์รายการสินค้าก่อน
// วนลูปแสดงข้อมูลสินค้า
products.forEach(product => { products.forEach(product => {
const productDiv = document.createElement('div'); const productDiv = document.createElement('div');
productDiv.classList.add('product'); productDiv.classList.add('product');
...@@ -69,13 +71,13 @@ ...@@ -69,13 +71,13 @@
}); });
} }
// Search products function // ฟังก์ชันค้นหาสินค้า
function searchProducts() { function searchProducts() {
const searchQuery = document.getElementById('search').value.toLowerCase(); const searchQuery = document.getElementById('search').value.toLowerCase();
fetchProducts(searchQuery); fetchProducts(searchQuery);
} }
// Add item to the cart // ฟังก์ชันที่เพิ่มสินค้าไปยังตะกร้า
function addToCart(productId, productName, productPrice, productImg) { function addToCart(productId, productName, productPrice, productImg) {
let cart = JSON.parse(localStorage.getItem('cart')) || []; let cart = JSON.parse(localStorage.getItem('cart')) || [];
const existingItem = cart.find(item => item.id === productId); const existingItem = cart.find(item => item.id === productId);
...@@ -97,7 +99,7 @@ ...@@ -97,7 +99,7 @@
alert(`${productName} added to cart!`); alert(`${productName} added to cart!`);
} }
// Update cart item count // ฟังก์ชันอัปเดตจำนวนสินค้าที่อยู่ในตะกร้า
function updateCart() { function updateCart() {
let cart = JSON.parse(localStorage.getItem('cart')) || []; let cart = JSON.parse(localStorage.getItem('cart')) || [];
const cartItemCount = document.getElementById('cart-item-count'); const cartItemCount = document.getElementById('cart-item-count');
...@@ -105,29 +107,11 @@ ...@@ -105,29 +107,11 @@
cartItemCount.textContent = totalQuantity; cartItemCount.textContent = totalQuantity;
} }
// Display user's email from session
async function displayUsername() {
try {
const response = await fetch('/api/getUser'); // Endpoint to get the user's email
if (response.status === 401) {
console.log('User not logged in');
document.getElementById('welcome-message').innerText = 'Please log in';
} else {
const user = await response.json();
document.getElementById('welcome-message').innerText = `Welcome, ${user.email}`; // Display email here
}
} catch (error) {
console.log('Error fetching user info:', error);
}
}
// เรียกใช้ฟังก์ชันเมื่อหน้าเว็บโหลดเสร็จ // เรียกใช้ฟังก์ชันเมื่อหน้าเว็บโหลดเสร็จ
window.onload = displayUsername; window.onload = function() {
fetchProducts(); // ดึงข้อมูลสินค้าทั้งหมด
// Initially load products, cart item count, and user info updateCart(); // อัปเดตจำนวนสินค้าในตะกร้า
fetchProducts(); // Fetch all products initially };
updateCart(); // Update cart count when page loads
displayUsername(); // Display user's email when page loads
</script> </script>
</body> </body>
</html> </html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment