Re: Aktuelle Seite hervorheben und nur Seitenteile zeigen

Kalma

Erfahrenes Mitglied
Hey,

ich habe wieder mal Probleme miter Blätterfunktion, wusste jedoch nicht, ob ich das alte Thema weiterbenutzen sollte, also hab ichn neues gemacht :P

Also. Ich will folgende Darstellung bewirken:
Die Seite, auf der man sich befindet, soll hervorgehoben werden. Like so:
1 - 2 - 3 - 4

Das habe ich schon mit if probiert und so, geht aber nicht wirklich :(

Dann will ich folgende Darstellung haben, damit es nicht so unübersichtlich bei vielen Seiten wird:
.. 1 - 2 - 3 ..
Das halt immer nur ein paar seiten gezeigt werden.


Wie programmiert man das?
David
 
das kommt drauf an wie du das bis jetz gelöst hast!
am besten du postest mal deinen code...oder sag zumindest was über die struktur
du brauchst hald ne variable die dir sagt wieviele seiten es insgesamt gibt
und ne variable in der du festhälsts, welche seite dir gerade angezeigt wird

wenn du dann die seitenzahlen (..1-2-3...) ausgeben willst könnte das so aussehen:
PHP:
for($i = 0; $i < $seiten_gesamt; $i++){
  if(($aktuelle_seite - 1) == $i){
     print '...'.$i.'-';
  } else if($aktuelle_seite == $i){
     print $i.'-';
  } else if(($aktuelle_seite + 1) == $i) {
    print $i.'...';
  }
}


p.S.: hab den code natürlich nicht getestet!
 
Also das mit dem Hervorheben ist einfach.
Ich gehe mal davon aus, dass wir eine test.php Datei haben, welche jeweils in der Form "test.php?page=1" aufgerufen wird.

PHP:
<?php
for ($i=1;$i<=$limit;$i++) {
  if ($_GET['page'] == $i) {
    echo "<strong>".$i."</strong>&nbsp;";
  }else{
    echo $i."&nbsp;";
  }
}
?>
Dein zweiter Punkt ist nicht so einfach zu realisieren... hab da aber mal ein Script geschrieben. Wenn ichs find poste ich es noch.

Gruß,
cAm3eel.
 
Hey,

danke schonmal für die Antworten.

Das hier ist mein Code :)
PHP:
<div class="ptitel">News</div>
<?php
	$sql 					= "SELECT * FROM news";               		//Anstatt 'Tabelle' natürlich die betreffende Tabelle auswählen
	$eintrage 		= mysql_num_rows(mysql_query($sql));   		//Die Einträge der Tabelle herausholen
	$maxproseite 	= 5;                                			//Statt der 5 die maximale Anzahl der Einträe pro Seite angeben
	$seiten 			= $eintrage / $maxproseite;             	//Anzahl der Seiten errechnen
	
	if ($eintrage == "")
		{
			//wenn keine einträge da sind, fehler-meldung
			echo "<div class=\"fehler\">Es sind keine News eingetragen worden</div>";
		}
	else
		{ //sonst die ganz normale abfrage
	
	if (!isset($_GET['page'])) 
		{                     //normalabfrage, wenn keine Seite gegeben ist.
    	$sql 				= "SELECT * FROM news ORDER BY id DESC LIMIT 0,".$maxproseite.";";  
		} 
	else 
		{                                         //Abfrage, wenn eine Seitenzahl gegeben ist.
    	$abeintrag 	= $_GET['page'] * $maxproseite - $maxproseite;
    	$sql 				= "SELECT * FROM news ORDER BY id DESC LIMIT ".$abeintrag.",".$maxproseite.";";
		}
	$news = mysql_query($sql);
	
	function newsblaetter($eintrage, $maxproseite, $seiten) //die funktion für das blättern
		{
			//seiten errechnen:
			$last = $_GET['page']-1;
			
			if (!isset($_GET['page']))
				{
					$next = 2;
				}
			else
				{
					$next	= $_GET['page']+1;
				}
			$lastp = round($seiten);
			
			echo "<div align=\"center\">";
			
			//verlinkung zur vorigen seite
			if ((!isset($_GET['page'])) OR ($_GET['page'] == 1))
				{
					echo ""; //wenn man auf der 1. ist, gibt es kein zurück^^
				}
			else
				{
					//andererseites zurück
					echo "<a href=\"?section=index&page=$last\"><<</a> &middot; ";
				}
			
				//hier alle seiten ausgeben
				for($i = 1; $i - 1 < $seiten; $i++)
					{              //Ausgabe der Linkliste
						if ($lastp == 0)
							{
    						echo "<a href=\"?section=index&page=".$i."\">".$i."</a>";
    					}
    				else
    					{
    						echo "<a href=\"?section=index&page=".$i."\">".$i."</a> &middot; ";
    					}
					}
					
			//die verlinkung >> (für die nächste seite
			if ($_GET['page'] == $lastp)
				{
					echo ""; //falls man auf der letzten seite ist, keine verlinkung
				}
			else
				{
					echo "<a href=\"?section=index&page=$next\">>></a>"; //wenn man auf einer anderen ist, kann man auf weiterklicken
				}
			echo "</div>";
		}	
		
	newsblaetter($eintrage, $maxproseite, $seiten); //ausgeben der seiten
	echo "<p />";
	
	
	$z = 0;
	while ($n = mysql_fetch_array($news))
		{
			//user auslesen
			$user = mysql_query("SELECT * FROM user WHERE `id`=".$n['aid']."");
			$u		= mysql_fetch_array($user);
									
			if ($z%2 == 0) //die unterschiedlichen zeilenfarben ermitteln
				{
					echo "<div class=\"eintrag1\">";
				}
			else
				{
					echo "<div class=\"eintrag2\">";
				}
					echo "<b>".$n['titel']."</b>";
					echo "<br />";
					echo "".nl2br($n['news'])."";
					echo "<br />";
					echo "<div align=\"right\">Verfasst von ".$u['nickname']." / ".$n['erstellt']."</div>";
					echo "<p />";
					echo "</div>";
					$z++;
		}
		
	echo "<p />";
	
	newsblaetter($eintrage, $maxproseite, $seiten); //ausgeben der seiten
	echo "<p />";

	} //prüfung der einträge beenden
?>
 
Zurück