login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Paginanavigatie

Offline Frederic - 13/03/2005 14:55
Avatar van FredericPHP ver gevorderde Ik ben bezig aan een navigatiescript, en heb lange tijd met dit gewerkt:
  1. <?php
  2. $sql = "SELECT * FROM gastenboek ORDER BY id DESC";
  3. $query = mysql_query($sql) or die(mysql_error());
  4. $rtel = mysql_num_rows($query);
  5.  
  6. if ($rtel < 1) {
  7. echo "<div class=\"normaal\">Nog niets hier!</div>";
  8.  
  9. } else {
  10. $max = 8;
  11. $rtel/=$max;
  12. if (empty($navigatiepagina)) $navigatiepagina=1;
  13. $van=($navigatiepagina-1)*$max;
  14. if ($navigatiepagina > ceil($rtel)) $navigatiepagina=1;
  15. for ($i = 1; $i <= ceil($rtel); $i++) {
  16. if ($navigatiepagina == $i)
  17. $navigatiepaginas[$i] = "<b>$i</b>";
  18. else
  19. $navigatiepaginas[$i] = "<a href=\"?Pagina=Gastenboek&navigatiepagina=$i\">$i</a>";
  20. }
  21.  
  22. $navigatiepaginas= implode(" | ", $navigatiepaginas);
  23. $vorige = ($navigatiepagina-1) ? "<a href=\"?Pagina=Gastenboek&navigatiepagina=" . ($navigatiepagina - 1)
  24. . "\">< Vorige</a>" : "";
  25. $volgende = ($navigatiepagina-ceil($rtel)) ? "<a href=\"?Pagina=Gastenboek&navigatiepagina=" .
  26. ($navigatiepagina + 1) . "\">Volgende ></a>" : "";
  27.  
  28. if ($vorige && $volgende) {
  29.  
  30. $navigatie = ("<div class=\"normaal\">".$vorige." | ".$navigatiepaginas." | ".$volgende."</div>");
  31.  
  32. } else {
  33.  
  34. $navigatie = ("<div class=\"normaal\">".$vorige." | ".$navigatiepaginas." | ".$volgende."</div>");
  35.  
  36. }
  37. }
  38. ?>

Nu, ik zou het graag willen omvormen naar de navigatie zoals op SM(ja hoor, ik zal credits vermelden) maar ik er iemand die me een beetje op weg kan helpen? (ik heb al bij scripts&tuts gekeken maar niets echts nuttigs gevonden)

9 antwoorden

Gesponsorde links
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator Niets nuttigs gevonden rnrn[url=httpwww.sitemasters.bepagina=tutorialstutorials&cat=4&id=198]Tijd voor een nieuwe bril [url]
Offline Frederic - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Frederic PHP ver gevorderde inderdaad, volgende week!rnHoe weet jij dat zo goedrnMjah hoe maak je daar nu een dropdownbox vanrnWant dat is in tekstweergavernmaw ik weet wel hoe alles in mysql te zettne, maar niet hoe het te maken dat ik er buttons krijg, en een dropdownbox die ook aangeeft waar de bezoeker isrnDit heb ik dus al, maar de output lukt me nietrn[code]include connect.php;rn$res1 = mysql_query(SELECT COUNT(id) FROM gastenboek) or die(res1. mysql_error());rn$items_totaal = mysql_result($res1, 0);rnmysql_free_result($res1);rn$max = 8;rn$aantal_paginas = ceil($items_totaal $max);rn$huidige_pagina = 0;rnif(isset($_GET['navigatiepagina']) && is_numeric($_GET['navigatiepagina']) && $_GET['navigatiepagina'] 0 && $_GET['navigatiepagina'] $max) {rn $huidige_pagina = $_GET['navigatiepagina'];rn}rn$offset = $huidige_pagina $max;rn$res2 = mysql_query(SELECT FROM gastenboek ORDER BY id DESC LIMIT .rn$offset.,.$max)rn or die(res2. mysql_error());[code]
Offline Thomas - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Thomas Moderator Voor een dropdown-box hoef je maar 2 dingen te wetenrn- het aantal pagina'srn- de huidige paginarnrnDe rest is gewoon een kwestie van met een for-lus door de pagina's heenlopen rnrn[code]form name=nav action== $_SERVER['PHP_SELF'] method=postrnselect name=nav_selectrnphprnfor($i=0; $i $aantal_paginas; $i++) {rnrnoption value== $i = ($i == $huidige_pagina) selected=selected = ($i + 1) optionrnphprn}rnrnselectrnform[code]rnrnLet erop dat pagina 0 als pagina 1 wordt weergegeven - pagina 0 staat een beetje raar.rnrnJe kan er voor kiezen om een gaan knop te maken (zoals op het forum) of een submit-on-change constructie met JavaScript.
Offline Frederic - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Frederic PHP ver gevorderde Hmm, als ikrn[code]$totaal_aantal = mysql_result($sql1, 1);[code] doe, dan klopt het toch wel weer hernToch klopt er ergens iets nietrn[code]phprninclude connect.php;rn$sql1 = mysql_query(SELECT COUNT(id) FROM gastenboek) or die(SQL1. mysql_error());rn$totaal_aantal = mysql_result($sql1, 0);rnmysql_free_result($sql1);rn$aantal_items_per_pagina = 8;rn$aantal_paginas = ceil($totaal_aantal $aantal_items_per_pagina);rn$huidige_pagina = 0;rnif(isset($_GET['navigatiepagina']) && is_numeric($_GET['navigatiepagina']) && $_GET['navigatiepagina'] 0 && $_GET['navigatiepagina'] $max) {rn $huidige_pagina = $_GET['navigatiepagina'];rn}rn$offset = $huidige_pagina $aantal_items_per_pagina;rn$SQL2 = mysql_query(SELECT FROM gastenboek ORDER BY id DESC LIMIT .rn$offset.,.$aantal_items_per_pagina) or die(SQL2. mysql_error());rnrnform name=nav action== $_SERVER['PHP_SELF'] method=postrnselect name=nav_selectrnphprnfor($i=0; $i $aantal_paginas; $i++) {rnrnoption value== $i = ($i == $huidige_pagina) selected=selected = ($i + 1) optionrnphprn}rnrnselectrnform[code] rnAls ik nu surf naar index.phpnavigatiepagina=5, dan wordt optie 5 niet gelecteerd (maar wel 11 = hoogste)
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator Mja, dat is wel iets wat je zelf op kan lossen he rnJe selected pagina gaat ergens niet goed.
Offline Frederic - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Frederic PHP ver gevorderde Ik heb alles aan het werken gekregen, vraag me nu alleen nog af hoe het te regelen dat als ie op de eerste pagina is dat er geen terug buttons moeten zijn, en dat als hij op de laatste is dat er geen volgende moeten zijn
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator Daar heb je if-statements voor.
Offline Frederic - 30/11/1999 00:00
Avatar van Frederic PHP ver gevorderde Joepie na lang prullen heb ik eindelijk het gewenste effect!!rn[code]phprninclude_once connect.php;rnfunction correctURL($negeren) {rn $querystring = ; de querystringrn if(sizeof($_GET) 1 !in_array($negeren, array_keys($_GET))) {rn meer queryvariabelen te onthouden dan enkel $_GET[$nav_var]rn foreach($_GET as $k = $v) {rn if($k != $negeren) {rn $querystring .= $k.=.$v.&amp;;rn }rn }rn }rn return $querystring;rn}rnrnrnfunction navigatie($op, $max)rn{rnglobal $aantal_items_per_pagina;rnglobal $offset;rnglobal $huidige_pagina;rn$sql1 = mysql_query(SELECT COUNT(id) FROM .$op.) or die(SQL1. mysql_error());rn$totaal_aantal = mysql_result($sql1, 0);rnmysql_free_result($sql1);rn$aantal_items_per_pagina = $max;rn$aantal_paginas = ceil($totaal_aantal $aantal_items_per_pagina);rn$aantal_paginas+=1;rn$huidige_pagina = 0;rnif(isset($_GET['navigatiepagina']) && is_numeric($_GET['navigatiepagina']) && $_GET['navigatiepagina'] 0 && $_GET['navigatiepagina'] $aantal_paginas) {rn$huidige_pagina = $_GET['navigatiepagina'];rn$huidige_pagina-=1;rn}rn$offset = $huidige_pagina $aantal_items_per_pagina;rn$plaats = $_SERVER['PHP_SELF'].correctURL(navigatiepagina);rnrnrnform name=navigatie action= echo $_SERVER['PHP_SELF'] ; method=postrnphp if ($huidige_pagina != 0)rn{rnrninput name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina=1' value= rninput name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina= echo $huidige_pagina ;' value= rnphprn}rnrnselect onChange=window.location=''+this.form.elements['navigatiebox'].value; name=navigatieboxrnphprnfor($i=1; $i $aantal_paginas; $i++) {rnrnoption value= echo $plaats ;navigatiepagina= echo $i ;= ($i - 1 == $huidige_pagina) selected=selected echo $i ;optionrnrn}rnrnselectrnphprnif ($huidige_pagina != $aantal_paginas - 2)rn{rnrninput name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina= echo $huidige_pagina + 2 ;' value= rninput name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina= echo $aantal_paginas - 1 ;' value= rnphprn}rnrnformrnphprn}rn[code] rn[b]MAAR[b] ik heb nu wel rare omwegen gebruikt, nu vraag ik me af is er geen efficientere manier om dit te scripten
Offline Frederic - 30/11/1999 00:00
Avatar van Frederic PHP ver gevorderde En hier ben ik weer, met het laatste probleem (ik beloof het -))rnDit keer heb ik gepoogd om er een 'aantal' van te laten maken, zodat de bezoeker in een dropdownbox zijn aantallen kan selecteren maar die box werkt gewoon niet! Dit is de codernrn[code]rnphprn include_once connect.php;rn rn rn rn function correctURL($negeren) {rn $querystring = ;rn if(sizeof($_GET) 1 !in_array($negeren, array_keys($_GET))) {rn $_GET[$nav_var]rn foreach($_GET as $k = $v) {rn if($k != $negeren) {rn $querystring .= $k.=.$v.&amp;;rn }rn }rn }rn return $querystring;rn }rn rn rn rn rn function navigatie($op, $max)rn {rn if (isset($_GET['aantal']) && is_numeric($_GET['aantal']))rn {rn $max = $_GET['aantal'];rn }rn global $aantal_items_per_pagina;rn global $offset;rn global $huidige_pagina;rn global $aantal_paginas;rn $sql1 = mysql_query(SELECT COUNT(id) FROM .$op.) or die(SQL1. mysql_error());rn $totaal_aantal = mysql_result($sql1, 0);rn mysql_free_result($sql1);rn $aantal_items_per_pagina = $max;rn $aantal_paginas = ceil($totaal_aantal $aantal_items_per_pagina);rn $aantal_paginas+=1;rn $huidige_pagina = 0;rn if(isset($_GET['navigatiepagina']) && is_numeric($_GET['navigatiepagina']) && $_GET['navigatiepagina'] 0 && $_GET['navigatiepagina'] $aantal_paginas) {rn $huidige_pagina = $_GET['navigatiepagina'];rn $huidige_pagina-=1;rn }rn $offset = $huidige_pagina $aantal_items_per_pagina;rn global $max;rn }rn rn rn rn rn rn function navigatietonen()rn {rn global $aantal_items_per_pagina;rn global $offset;rn global $max;rn global $huidige_pagina;rn global $aantal_paginas;rn $plaats = $_SERVER['PHP_SELF'].correctURL(navigatiepagina);rn rn form name=navigatie action= echo $_SERVER['PHP_SELF'] ; method=postrn php if ($huidige_pagina != 0)rn {rn rn input name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina=1' value= rn input name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina= echo $huidige_pagina ;' value= rn phprn }rn rn select onChange=window.location=''+this.form.elements['navigatiebox'].value; name=navigatieboxrn phprn for($i=1; $i $aantal_paginas; $i++) {rn rn option value= echo $plaats ;navigatiepagina= echo $i ;= ($i - 1 == $huidige_pagina) selected=selected echo $i ;optionrn rn }rn rn selectrn phprn if ($huidige_pagina != $aantal_paginas - 2)rn {rn rn input name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina= echo $huidige_pagina + 2 ;' value= rn input name=button type=button class=navigatie onClick=window.location=' echo $plaats ;navigatiepagina= echo $aantal_paginas - 1 ;' value= rn phprn }rn $plaats2 = $_SERVER['PHP_SELF'].correctURL(navigatiepagina).correctURL(aantal);rn rn formrn select name=aantal class=button onChange=window.location=''+this.form.elements['aantal'].value; style=font-family Tahoma; color #000080 size=1rn option- Aantal -optionrn option value= echo $plaats2 ;aantal=8= ($max == 8) selected=selected 8 berichtenoptionrn option value= echo $plaats2 ;aantal=10= ($max == 10) selected=selected 10 berichtenoptionrn option value= echo $plaats2 ;aantal=12= ($max == 12) selected=selected 12 berichtenoptionrn option value= echo $plaats2 ;aantal=15= ($max == 15) selected=selected 15 berichtenoptionrn option value= echo $plaats2 ;aantal=20= ($max == 20) selected=selected 20 berichtenoptionrn selectrn phprn }rn rn[code]rnrnOverigens vraag ik me af of ik alle globals echt wel nodig heb, en ofdat er nergens onnodige dingen gedaan zijn Thanks!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.316s