blätterfunktion .txt

Hallo

Hi Tob, also ich werde den Verdacht nicht los, dass du mich mit deinen eingebauten "Fallen" dazu nötigst meine (eigentlich nicht vorhandenen) PHP-Gehirnzellen zu strapazieren ;-) ist ja ein ganz guter Lerneffekt, aber trotzdem komme ich jetzt nicht weiter:

also erstens das mit den fehlenden bzw. falschen Klammern habe ich schonmal ausgebessert :-)
Damit funktioniert der Sprung auf Seite 1 schon mal ...

jetzt habe ich stundenlang rumprobiert mit der letzten Seite und kriege es nicht hin... so sieht es bisher aus, jedoch sollte ja da auch beim Klick auf die letzte Seitenzahl die dann nicht nochmal dort stehen ... Hier das bisherige armseliger Ergebnis meiner unterbemittelten Fähigkeiten:
PHP:
if ($page < intval($total/$max)){ 
echo "<a href=\"$PHP_SELF?page=".($page+1)."\">>>></a>";
}
if ($i = ($total/$max)){ //letzte Seitenzahl immer anzeigen
echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
}
Wie jetzt ...:rolleyes:

zur Frage mit der Webseite: ja die ist noch im Trockendock, da die Änderungen am Design und Inhalt so umfangreich sind, ist sie seit laaaaanger Zeit schon nicht mehr online, auch wegen der knappen Zeit. Ich hoffe, dass ich es hinbekomme noch vor Weihnachten unsrere beliebte Guggemal-Seite wieder anzuknippsen ...
Wenn du wissen willst wie das Teil vor grauen Vorzeiten mal ausgesehen hatte, dann solltest du hier mal guggen ... Kann natürlich sein, dass dort nicht mehr alles so funktioniert ..

Gruß RonMcDon
 
Mist, ich blicke grade nicht so ganz was Du meinst, poste doch bitte nochmal den ganzen Code für das anzeigen der Seitenzahlen.

gruß tob
 
Original geschrieben von Tob
Mist, ich blicke grade nicht so ganz was Du meinst, poste doch bitte nochmal den ganzen Code für das anzeigen der Seitenzahlen.

gruß tob
Dein Wunsch ist mir Befehl ... :-) Hier der Erste Abschnitt:
PHP:
$max = "3";
$total = "99";

if (! $page > 0) {
	$page = 1;
}

if (intval($total/$max)+1 < $page) {
	$page=1;
}

if ($total >= $page*$max) {
	$lastrec = $page*$max;
}
else {
	$lastrec = (($page-1)*$max) + ($total % $max);
}

echo "<tr><td class=\"navitext\">";

echo "<b>goto:</b> ";
und hier der Blätterabschnitt:
PHP:
////-------- Zurück- und Vorblättern Neu Anfang
$range= 2;   // Seitenzahl von der jetzigen Seite - 3 bis + 3 werden angezeigt.

if ($page - $range > 1){ // immer Seite 1 anzeigen, wenn weitergeblättert
echo "<a href=\"$PHP_SELF?page=1\">1</a>";
}

if($page -1 > 0){
echo "<a href=\"$PHP_SELF?page=".($page-1)."\"><<<</a>";
}
//niedrigste Seitenzahl bestimmen und verhindern dass kleiner 1
if ($page - $range <= 0){
    $start = 1;
    }
else {
   $start = $page - $range;
}
// höchste Seitenzahl bestimmen und verhindern dass größer $total und vehindern das leere Seite angezeigt wird
if ($page + $range > $total/$max){
    if($total%$max > 0){
        $ende = intval($total/$max) +1;
    }
    else{
        $ende = intval($total/$max);
    }
}
else {
$ende = $page + $range;
}

for ($i=$start; $i<= $ende; $i++) { // Start und Endwerte einsetzen.
    if ($i != $page) {
        echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
    }
    else {
        echo "<span class=\"navizahl\">$i</span>";
    }
   print " ";
} 
if ($page < intval($total/$max)){ 
echo "<a href=\"$PHP_SELF?page=".($page+1)."\">>>></a>";
}
if ($i = ($total/$max)){ //letzte Seitenzahl immer anzeigen ...
echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
}

////-------- Zurück- und Vorblättern Neu Ende
So siehts jetzt aus ...
 
PHP:
if ($i = ($total/$max)){ //letzte Seitenzahl immer anzeigen ...
echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
}
warum steht da eigentlich $i bei dier? in das hier ändern,
PHP:
if ( $page < ($total/$max)-$range){ //Letzte Seitenzahl nur anzeigen wenn sie nicht sowieso schon angezeigt wird ...
    if($total%$max > 0){
        $ende = intval($total/$max) +1;
        echo "<a href=\"$PHP_SELF?page=$ende\">$ende</a>";
    }
    else{
        $ende = intval($total/$max);
        echo "<a href=\"$PHP_SELF?page=$ende\">$ende</a>";
    }
}

gruß tob

mal sehen was dieses mal nicht geht :-)
 
Danke Tob das sieht super aus ...

aaaaaalsoooooo ich hätte jetzt gern ... :-)

nee nee ist schon ganz gut so jetzt, ich würde aber ganz gern die Logik verstehen ... also

if ( $page < ($total/$max)-$range){ // wenn seitenzahl(?) kleiner als 99:3 minus gerade angezeigte seitenzahl (?) ...

if($total%$max > 0){ // dann noch mal eine wenn-Angabe, die ich nicht kapiere...

naja und ich dachte, dass $i eigentlich auch die zu bestimmende Seitenzahl ist ...

Oder vielleicht sollte ich auch hier lieber aufhören zu nerven ...
 
null Problemo:
if ( $page < ($total/$max)-$range){ // wenn seitenzahl(?) kleiner als 99:3 minus gerade angezeigte seitenzahl (?) .
nicht minus gerade angezeigte Seitenzal, sonder minus die
Spanne von der Momentanen Seite +-. siehe im Code:
$range= 2; // Seitenzahl von der jetzigen Seite - 2 bis + 2 werden angezeigt.
also: wenn $page kleiner 99:3 - 2 zeige letzte seite an.
if($total%$max > 0)
% macht eine modulo rechnung, soll heißen, sie gibt dir
immer den Rest der division aus bei 99:3 ist der 0, bei 100 :3
wäre es periode 3, dadurch kann man dann sagen ob
noch 1 adiert werden muss um auch wirklich alle seiten anzuzeigen.
naja und ich dachte, dass $i eigentlich auch die zu bestimmende Seitenzahl ist ...
$i hat nur solangen einen Wert wie die for schleife durchlaufen
wird. danach verschwindet es wieder, bzw. muss neu definiert werden.

gruß tob
 
Hab mir das gleich ausgedruckt! Danke!

An dieser Stelle nochmals Herzlichen Dank Tobi für Deine aufopferungsvolle Hilfe

Man liest sich ... :-)


Apropos wer diese modifizierte Shoutbox gern einsetzen oder weiterentwickeln möchte, sollte mir mailen, zip kommt per Mail.

Gruß RonMcDon
 
Zurück