Eenvoudige paginanummering
Eenvoudig script om een nette paginanummering neer te zetten, voor bijvoorbeeld je gastenboekje of forum.
Gesponsorde koppelingen
PHP script bestanden
4 reacties op 'Eenvoudige paginanummering'
Gesponsorde koppelingen
Dit gedeelte is slechts onderdeel van een eventueel script wat iemand aan het schrijven is. Iemand maakt bijvoorbeeld een gastenboek en wil er een pagina systeem in bouwen. Hij zorgt alleen dat zijn gedeelte script uitrekent hoeveel pagina's het zijn, welke pagina geselecteerd is en vult de linkjes in, en z'n paginasysteem is klaar. Dat scheelt weer wat werk...
Zou persoonlijk de herhalende code in een functie zetten. Snel voorbeeldje hieronder. Is maar een ideetje.
Vind het concept wel goed bedacht.
Vind het concept wel goed bedacht.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
# Settings:
# Deze stel je normaal (natuurlijk) in met je script zelf, hier staan ze maar even voor het voorbeeldje
$ap = 30; # Aantal pagina's
$sp = 14; # Geselecteerde pagina
# Einde settings
# Je moet nog wel zelf hieronder de linkjes aanpassen
function firstPageSetup($ap)
{
for($i = 1; $i <= $ap; $i++)
{
if($i == $sp)
echo '<strong>'.$i.'</strong> ';
else
{
echo '<a href='#'>'.$i.'</a> ';
}
}
}
//Als het aantal pagina's minder is dan 13 gewoon het hele rijtje laten zien
if ($ap < 13) {
pageSetup($ap);
}
// Als de geselecteerde pagina een van de eerste 6 pagina's is gewoon de eerste 7 laten zien
elseif($sp < 6)
{
pageSetup(7);
echo '... ';
for($i = ($ap - 2); $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
}
// Als de geselecteerde pagina een van de laatste 6 pagina's is gewoon de laatste 7 laten zien
elseif($sp > ($ap - 5))
{
echo '... ';
for($i = ($ap - 5); $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
}
// In alle overige gevallen de eerste 3 en de laatste 3 pagina's laten zien, en de 3 rondom de geselecteerde pagina
else
{
for($i = 1; $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
echo '... ';
for($i = ($sp - 1); $i <= ($sp + 1); $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
echo '... ';
for($i = ($ap - 2); $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
}
?>
# Settings:
# Deze stel je normaal (natuurlijk) in met je script zelf, hier staan ze maar even voor het voorbeeldje
$ap = 30; # Aantal pagina's
$sp = 14; # Geselecteerde pagina
# Einde settings
# Je moet nog wel zelf hieronder de linkjes aanpassen
function firstPageSetup($ap)
{
for($i = 1; $i <= $ap; $i++)
{
if($i == $sp)
echo '<strong>'.$i.'</strong> ';
else
{
echo '<a href='#'>'.$i.'</a> ';
}
}
}
//Als het aantal pagina's minder is dan 13 gewoon het hele rijtje laten zien
if ($ap < 13) {
pageSetup($ap);
}
// Als de geselecteerde pagina een van de eerste 6 pagina's is gewoon de eerste 7 laten zien
elseif($sp < 6)
{
pageSetup(7);
echo '... ';
for($i = ($ap - 2); $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
}
// Als de geselecteerde pagina een van de laatste 6 pagina's is gewoon de laatste 7 laten zien
elseif($sp > ($ap - 5))
{
echo '... ';
for($i = ($ap - 5); $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
}
// In alle overige gevallen de eerste 3 en de laatste 3 pagina's laten zien, en de 3 rondom de geselecteerde pagina
else
{
for($i = 1; $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
echo '... ';
for($i = ($sp - 1); $i <= ($sp + 1); $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
echo '... ';
for($i = ($ap - 2); $i <= $ap; $i++)
{
echo '<a href='#'>'.$i.'</a> ';
}
}
?>
Dit kan efficienter, bijvoorbeeld door het opbouwen van een array met alle elementen van je nummer reeks.
Zoiets bijvoorbeeld:
Zoiets bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
// Determine limit and offset
// $iPage previously determined by for example $_GET variable
$iPageLimit = 30;
$iOffset = ($iPage - 1) * $iPageLimit;
// Compute pages, change $aPageRange as desired
$iTotalPages = ceil($iNumUsers / $iPageLimit);
$aPageRange = array(1, 2, $iPage-3, $iPage-2, $iPage-1, $iPage, $iPage+1, $iPage+2, $iPage+3, $iTotalPages-1, $iTotalPages);
// Eliminate duplicate entries from pagerange, eliminate invalid pages and sort finally
$aPageRange = array_unique($aPageRange);
foreach($aPageRange as $key => $iPage) {
if($iPage > $iTotalPages || $iPage < 1) {
unset($aPageRange[$key]);
}
}
sort($aPageRange);
// Add ... to the pagerange at appropriate places
$prev = 0;
$aPageRangeFinal = array();
foreach($aPageRange as $iPage) {
if($iPage-1 != $prev) {
$aPageRangeFinal[] = '...';
}
$aPageRangeFinal[] = $iPage;
$prev = $iPage;
}
// Use foreach loop to read $aPageRangeFinal and echo values
?>
// Determine limit and offset
// $iPage previously determined by for example $_GET variable
$iPageLimit = 30;
$iOffset = ($iPage - 1) * $iPageLimit;
// Compute pages, change $aPageRange as desired
$iTotalPages = ceil($iNumUsers / $iPageLimit);
$aPageRange = array(1, 2, $iPage-3, $iPage-2, $iPage-1, $iPage, $iPage+1, $iPage+2, $iPage+3, $iTotalPages-1, $iTotalPages);
// Eliminate duplicate entries from pagerange, eliminate invalid pages and sort finally
$aPageRange = array_unique($aPageRange);
foreach($aPageRange as $key => $iPage) {
if($iPage > $iTotalPages || $iPage < 1) {
unset($aPageRange[$key]);
}
}
sort($aPageRange);
// Add ... to the pagerange at appropriate places
$prev = 0;
$aPageRangeFinal = array();
foreach($aPageRange as $iPage) {
if($iPage-1 != $prev) {
$aPageRangeFinal[] = '...';
}
$aPageRangeFinal[] = $iPage;
$prev = $iPage;
}
// Use foreach loop to read $aPageRangeFinal and echo values
?>
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
- Ricardo -- 2 jaar geleden
- 1.506 x bekeken
- Labels
pagina, nummering, paginanummering
- PHP scripts opties
- Snippets
- Nieuwste PHP scripts
- PHP script toevoegen


PHP hulp
0 seconden vanaf nu