Debugging 8
This commit is contained in:
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user