Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] Seitenauflistung - Blätterfunktion

Empfohlene Antworten

Veröffentlicht

hi...

ich habe mir eine kleine funktion zum blättern gebaut, soweit so gut

momentan sieht es so aus

Seite: << < 1 2 3 4 5 6 7 8 9 10 11 12 [ 13 ] 14 15 16 17 18 19 20 > >>

ich möchte es aber bei so vielen seiten , also ab 20 denke ich so haben

Seite: << < 9 10 11 12 [ 13 ] 14 15 16 17 > >>

das er mir nur die vorherigen 4 und die nachfolgenden 4 anzeigt,

ist sicher möglich aber ich hab 0 ahnung wie

wenn jemand lange weile hat

mein code:


$seite = $_REQUEST[seite];
//$seite = aktuelle seite || $eintraege_anzahl = anzahl der einträge || $eintraege_pro_seite = einträge pro seite
function seiten($seite, $eintraege_anzahl, $eintraege_pro_seite) {

$anzahl_seiten = round($eintraege_anzahl / $eintraege_pro_seite) + 1;

if(($eintraege_anzahl / $eintraege_pro_seite) > 1) {

if(empty($seite)) { $seite = 1;}

if($seite > 1) {
if($seite != 2) {
$seiten .= ' <a href="test.php?seite=1"> << </a>';
} //if ende
$seiten .= ' <a href="test.php?seite='.($seite - 1).'"> < </a>';
} //if ende

for($i = 1; $i < $anzahl_seiten; $i++) {
if($seite == $i) {
$seiten .= ' <a href="test.php?seite='.$i.'"><b>[ '.$i.' ]</b></a>';
} //if ende
else {
$seiten .= ' <a href="test.php?seite='.$i.'">'.$i.'</a>';
} //else ende
} //for ende

if($seite < ($anzahl_seiten - 1)) {
$seiten .= ' <a href="test.php?seite='.($seite + 1).'"> > </a>';
if($seite != ($anzahl_seiten - 2)) {
$seiten .= ' <a href="test.php?seite='.($anzahl_seiten -1).'"> >> </a>';
} //if ende
} //if ende

} //if ende

$auflisten = 'Seite: '.$seiten;
return $auflisten;

}//function ende


echo seiten($seite, 230, 10);
[/PHP]

ist sicher bisschen kompliziert geschrieben, verbesserungen gerne ;)

thx

Ich habe dafür mal eine Funktion gemacht, die ein Array mit den Seiten zurück gibt, die angezeigt werden sollen...

Kannst auch gern die Klasse haben, damit könntest Du dann direkt die Navigation in nem Template parsen...



$arrNav = getNavigationArray(6,100,4,9);
echo "<pre>";
print_r($arrNav);
echo "</pre>";

function getNavigationArray($aktPage, $itemCount = 0, $itemsPerPage = 5, $pagesPerNavigation = 10) {

$resArr = array();
$pageArr = array();
if (!(intval($aktPage) > 0)) $aktPage = 1;
if (!(intval($itemCount) >= 0)) $itemCount = 0;
if (!(intval($itemsPerPage) > 0)) $itemsPerPage = 5;
if (!(intval($pagesPerNavigation) > 0)) $pagesPerNavigation = 10;

$resArr['pageCount'] = ceil ($itemCount/$itemsPerPage);
$resArr['aktPage'] = $aktPage;
$resArr['itemCount'] = $itemCount;
$resArr['itemsPerPage'] = $itemsPerPage;
$resArr['pagesPerNavigation'] = $pagesPerNavigation;

$deltaPages = floor($pagesPerNavigation/2);
$tmpPages = $deltaPages;

$preArr = array();
$postArr = array();
$count = 1;
for ($i = 1; ($i <= $tmpPages) && $count < $resArr['pageCount'] && ($count < $pagesPerNavigation); $i++) {
if (($aktPage - $i) > 0) {
$preArr[($aktPage - $i)] = "";
$count++;
}
else $tmpPages++;

if (($aktPage + $i) <= $resArr['pageCount']) {
$postArr[($aktPage + $i)] = "";
$count++;
}
else $tmpPages++;
}

ksort($preArr);
foreach ($preArr as $key=>$val) {
if ($key != $aktPage) {
$pageArr[$key] = true; //($itemsPerPage * ($key-1)).",".$itemsPerPage;
}
}

$pageArr[$aktPage] = false; //($itemsPerPage * ($aktPage-1)).",".$itemsPerPage;

foreach ($postArr as $key=>$val) {
if ($key != $aktPage) {
$pageArr[$key] = true; //($itemsPerPage * ($key-1)).",".$itemsPerPage;
}
}

$resArr['pages'] = $pageArr;
$resArr['fromRes'] = ($itemsPerPage * ($aktPage-1)) +1;
$resArr['toRes'] = ($itemsPerPage * ($aktPage-1))+$itemsPerPage;
if ($resArr['toRes'] > $itemCount) $resArr['toRes'] = $itemCount;

return $resArr;
}
[/PHP]

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.