Webshop/public/shop/shop.html
2025-04-29 12:51:45 +02:00

80 lines
2.8 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
Diese Seite zeigt alle Produkte des Webshops an.
Produkte werden dynamisch von der API geladen.
Bei einem Fehler wird eine passende Fehlermeldung angezeigt.
-->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Shop</title>
<!-- Haupt-CSS-Datei -->
<link rel="stylesheet" href="/Styles/styles-main.css">
<!-- Icons -->
<link href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css" rel="stylesheet">
<!-- Script zum Laden von Header/Footer -->
<script src="/header_footer"></script>
</head>
<body>
<!-- Header -->
<div id="header"></div>
<!-- Hauptinhalt -->
<section style="padding: 0px 30px; text-align: left;">
<h1>Willkommen im Webshop</h1>
</section>
<main>
<!-- "Container" für die dynamisch geladenen Produktkarten -->
<section class="card-grid" id="products">
<!-- Produkte werden hier eingefügt -->
</section>
</main>
<!-- Fußzeiele -->
<div id="footer"></div>
<script>
// Daten von der API abrufen
fetch('/api/products')
.then(res => res.json())
.then(products => {
const container = document.getElementById('products');
container.innerHTML = ''; // sicherheitshalber leeren
// Für jedes Produkt eine eigene Karte erstellen und einfügen
products.forEach(product => {
// Neues div-Element für die Produktkarte
const card = document.createElement('div');
// CSS-Styling hinzufügen
card.classList.add('card');
// HTML-Struktur der Produktkarte
card.innerHTML = `
<img src="${product.image_url}" alt="${product.name}">
<h3>${product.name}</h3>
<p>Preis: ${product.price}€</p>
<p>${product.description}</p>
<p>Artikel Nr: ${product.id}</p>
<button class="add-to-cart" data-id="${product.id}">Zum Warenkorb hinzufügen</button>
`;
// Karte in den Container einfügen
container.appendChild(card);
});
})
// Fehlermeldung
.catch(err => {
console.error('Fehler beim Laden der Shop_Produkte:', err);
// Fehlermeldung auf der Seite anzeigen
const container = document.getElementById('products');
container.innerHTML =
`<div class="error-message">
<h3>Fehler beim Laden der Produkte</h3>
<p>Es gab ein Problem beim Abrufen der Produktdaten.<br>Wir arbeiten bereits daran bitte versuchen Sie es später erneut.</p>
</div>`;
});
</script>
</body>
</html>