document.addEventListener('DOMContentLoaded', async () => { // Container für die Berater-Karten auswählen const container = document.getElementById('berater-container'); // Titel- und Untertitel-Elemente aus dem HTML abrufen const titleEl = document.querySelector('.section-title'); const subtitleEl = document.querySelector('.section-subtitle'); let daten; try { // Daten aus der JSON-Datei asynchron laden const response = await fetch('json/berater.json'); if (!response.ok) throw new Error(`HTTP Fehler: ${response.status}`); daten = await response.json(); } catch (error) { console.error('Fehler beim Laden der JSON-Datei:', error); // Fehlermeldung auf der Webseite anzeigen, falls das Laden fehlschlägt if (container) { container.innerHTML = '
Daten konnten nicht geladen werden.
'; } return; } // 1. Titel und Einleitungstext (Intro) aus der JSON-Datei einfügen if (titleEl && daten.intro) { titleEl.textContent = daten.intro.titel; } if (subtitleEl && daten.intro) { subtitleEl.textContent = daten.intro.text; } // 2. Berater-Karten verarbeiten und erstellen // Wir iterieren über das Array "berater" innerhalb der JSON-Daten daten.berater.forEach(berater => { // Ein neues div-Element für die Karte erstellen const card = document.createElement('div'); card.className = 'berater-card'; // Zertifikate verarbeiten (falls vorhanden) let zertifikateHtml = ''; if (berater.zertifikate && berater.zertifikate.length > 0) { zertifikateHtml = `${berater.zusatzInfo}
`; } // Eigene/unbekannte dynamische Felder verarbeiten // Zuerst definieren wir, welche Felder Standard sind und ignoriert werden sollen const standardFelder = ['id', 'name', 'role', 'image', 'bioTitle', 'bioText', 'zertifikate', 'links', 'zusatzInfo']; let eigeneFelderHtml = ''; // Wir durchlaufen jeden Eintrag in der JSON für diesen spezifischen Berater for (const [schluessel, wert] of Object.entries(berater)) { // Wenn das Feld kein Standardfeld ist, generieren wir daraus eine Überschrift und den zugehörigen Text if (!standardFelder.includes(schluessel)) { eigeneFelderHtml += `${wert}
`; } } // Die Karte mit allen gesammelten HTML-Bausteinen zusammenbauen card.innerHTML = `${berater.bioText}
${eigeneFelderHtml} ${zusatzHtml} ${zertifikateHtml} ${linksHtml}