Debugging 8

This commit is contained in:
rirat-0
2026-06-17 19:54:31 +02:00
parent 0805958033
commit b3c74c2172
2 changed files with 36 additions and 58 deletions
+7 -15
View File
@@ -27,7 +27,8 @@ if ($currentPage < 1) {
$offset = ($currentPage - 1) * $limit; $offset = ($currentPage - 1) * $limit;
// Nur die Ergebnisse für die aktuelle Seite ausschneiden // Nur die Ergebnisse für die aktuelle Seite ausschneiden
$results = array_slice($all_results, $offset, $limit); //$results = array_slice($all_results, $offset, $limit);
$results = $all_results;
$resultCount = count($results); $resultCount = count($results);
?> ?>
@@ -171,20 +172,11 @@ $resultCount = count($results);
</div> </div>
<div class="s-res-page-navigation"> <div class="s-res-page-navigation">
<button type="button" class="s-res-page-btn" data-page="<?php echo $currentPage - 1; ?>" <?php echo $currentPage <= 1 ? 'disabled' : ''; ?>> <button type="button" class="s-res-page-btn" id="prev-page-btn" data-page="0">«</button>
«
</button> <span id="dynamic-page-numbers"></span>
<!-- Dynamische Seitenzahlen -->
<?php for ($i = 1; $i <= $totalPages; $i++): ?> <button type="button" class="s-res-page-btn" id="next-page-btn" data-page="2">»</button>
<button type="button"
class="s-res-page-btn <?php echo $i === $currentPage ? 's-res-page-btn-active' : ''; ?>"
data-page="<?php echo $i; ?>">
<?php echo $i; ?>
</button>
<?php endfor; ?>
<button type="button" class="s-res-page-btn" data-page="<?php echo $currentPage + 1; ?>" <?php echo $currentPage >= $totalPages ? 'disabled' : ''; ?>>
»
</button>
</div> </div>
</div> </div>
+29 -43
View File
@@ -1,4 +1,3 @@
let currentClientPage = 1; let currentClientPage = 1;
const itemsPerPage = 10; const itemsPerPage = 10;
@@ -11,24 +10,25 @@ function initFilter() {
updateVisibility(); updateVisibility();
filterSelect.addEventListener('change', function() { filterSelect.addEventListener('change', function() {
currentClientPage = 1; // Bei Filterwechsel zurück auf Seite 1 currentClientPage = 1;
updateVisibility(); updateVisibility();
}); });
const navigationContainer = document.querySelector('.s-res-page-navigation');
if (navigationContainer) {
navigationContainer.addEventListener('click', function(e) {
const button = e.target.closest('.s-res-page-btn');
if (!button || button.disabled) return;
const pageButtons = document.querySelectorAll('.s-res-page-navigation .s-res-page-btn');
pageButtons.forEach(button => {
button.addEventListener('click', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
const targetPage = button.getAttribute('data-page');
const targetPage = this.getAttribute('data-page');
if (targetPage) { if (targetPage) {
currentClientPage = parseInt(targetPage, 10); currentClientPage = parseInt(targetPage, 10);
updateVisibility(); updateVisibility();
} }
}, true); });
}); }
} }
function updateVisibility() { function updateVisibility() {
@@ -37,11 +37,9 @@ function updateVisibility() {
const selectedCategory = filterSelect.value.toLowerCase().trim(); const selectedCategory = filterSelect.value.toLowerCase().trim();
const cards = listContainer.querySelectorAll('.s-res-item'); const cards = listContainer.querySelectorAll('.s-res-item');
// filtern
let visibleCards = []; let visibleCards = [];
cards.forEach(card => { cards.forEach(card => {
const cardCategory = (card.getAttribute('data-category') || '').toLowerCase().trim(); const cardCategory = (card.getAttribute('data-category') || '').toLowerCase().trim();
if (selectedCategory === 'all' || cardCategory.includes(selectedCategory) || selectedCategory.includes(cardCategory)) { if (selectedCategory === 'all' || cardCategory.includes(selectedCategory) || selectedCategory.includes(cardCategory)) {
visibleCards.push(card); visibleCards.push(card);
} else { } else {
@@ -49,11 +47,9 @@ function updateVisibility() {
} }
}); });
// nur 10 karten anzeigen
const totalVisible = visibleCards.length; const totalVisible = visibleCards.length;
const totalPages = Math.max(1, ceil(totalVisible / itemsPerPage)); const totalPages = Math.max(1, Math.ceil(totalVisible / itemsPerPage));
// aktuelle seite validieren
if (currentClientPage < 1) currentClientPage = 1; if (currentClientPage < 1) currentClientPage = 1;
if (currentClientPage > totalPages) currentClientPage = totalPages; if (currentClientPage > totalPages) currentClientPage = totalPages;
@@ -68,38 +64,28 @@ function updateVisibility() {
} }
}); });
// update der seitenzahl
updatePaginatorUI(currentClientPage, totalPages); updatePaginatorUI(currentClientPage, totalPages);
} }
function updatePaginatorUI(currentPage, totalPages) { function updatePaginatorUI(currentPage, totalPages) {
const pageButtons = document.querySelectorAll('.s-res-page-navigation .s-res-page-btn'); const prevBtn = document.getElementById('prev-page-btn');
const nextBtn = document.getElementById('next-page-btn');
pageButtons.forEach(button => { const numbersContainer = document.getElementById('dynamic-page-numbers');
const targetPage = button.getAttribute('data-page');
if (!prevBtn || !nextBtn || !numbersContainer) return;
if (button.textContent.includes('«')) {
button.setAttribute('data-page', currentPage - 1); prevBtn.setAttribute('data-page', currentPage - 1);
button.disabled = (currentPage <= 1); prevBtn.disabled = (currentPage <= 1);
} else if (button.textContent.includes('»')) {
button.setAttribute('data-page', currentPage + 1); nextBtn.setAttribute('data-page', currentPage + 1);
button.disabled = (currentPage >= totalPages); nextBtn.disabled = (currentPage >= totalPages);
} else {
const pageNum = parseInt(button.textContent.trim(), 10); let buttonsHTML = '';
for (let i = 1; i <= totalPages; i++) {
// Falls es die Seite im neuen Filter gar nicht mehr gibt -> Button verstecken const activeClass = (i === currentPage) ? 's-res-page-btn-active' : '';
if (pageNum > totalPages) { buttonsHTML += `<button type="button" class="s-res-page-btn ${activeClass}" data-page="${i}">${i}</button> `;
button.style.display = 'none'; }
} else { numbersContainer.innerHTML = buttonsHTML;
button.style.display = 'inline-block';
if (pageNum === currentPage) {
button.classList.add('s-res-page-btn-active');
} else {
button.classList.remove('s-res-page-btn-active');
}
}
}
});
} }
// Hilfsfunktion für Math.ceil in JS // Hilfsfunktion für Math.ceil in JS