Archief - PHP: Variabele select options

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

.kw

Legacy Member
Ik ben een gastenboek aan het maken. Nu had ik graag een <select> gehad, met daarin alle pagina's van 1 tot de variabele laatste, met telkens vermeld welke berichten dat zijn.

BV: Stel dat er 24 berichten zijn in totaal en 10 per pagina.

PHP:
<select name="pages" size=1>
<option label="Pagina's" value="1" selected>Pagina's</option>
<option label="" value=""></option>
<option label="2 (11 t/m 20)" value="2">2 (11 t/m 20)</option>
<option label="3 (21 t/m 24)" value="3">3 (21 t/m 24)</option>
</select>

Hoe kan ik dat nu automatisch laten genereren met PHP?
Ik heb deze variabelen:
  1. totaal aantal pagina's
  2. totaal aantal berichten
  3. aantal berichten per pagina
    [/list=1]

DarkBone

Legacy Member
LIMIT clausule van MySQL gebruiken

LIMIT start, aantal

Dat wordt dan:
LIMIT ((pagina-1)*aantal_per_pagina), aantal_per_pagina


Stel dat aantal_per_pagina = 10 dan zullen de pagina's 1, 2 en 3 respectievelijk het volgende geven:

LIMIT 0, 10
LIMIT 10, 10
LIMIT 20, 10
etc...

*edit*
'k Had blijkbaar uw vraag verkeerd begrepen :D
Hierboven staat dus de methode om de entries af te beelden op basis van een paginanummer dat je meekrijgt :p

Da Turtle

Legacy Member
PHP:
<select name="pages" size=1> 
<option label="Pagina's" value="1" selected>Pagina's</option> 
<?php
#aantal pagina's : $paginas
#aantal berichten : $berichten
#aantal berichten/pagina : $perpagina
for ($i=0; $i < $paginas; $i++){
	$pagina = $i + 1;
	if ($pagina != $_GET["page"]){
		$begin = ($perpagina * $i) + 1;
		$einde = $perpagina * ($i + 1);
		if ($einde > $berichten){
			$einde = $berichten;
		}
		echo "<option label=\"" . $pagina . " (" . $begin . " t/m " . $einde . ")\" value=\"" . $i . "\">" . $pagina . " (" . $begin . " t/m " . $einde . ")</option>";
	} else {
		echo "<option label=\"\" value=\"\"></option>"; #dit versta ik wel niet? je kan toch gewoon geen option zetten?
	}
}
?>
</select>

zoiets denk ik? zou moeten werken, kheb et getest

mss nie zo bedoeld? :unsure:

.kw

Legacy Member
Originally posted by DarkBone
LIMIT clausule van MySQL gebruiken

LIMIT start, aantal

Dat wordt dan:
LIMIT ((pagina-1)*aantal_per_pagina), aantal_per_pagina


Stel dat aantal_per_pagina = 10 dan zullen de pagina's 1, 2 en 3 respectievelijk het volgende geven:

LIMIT 0, 10
LIMIT 10, 10
LIMIT 20, 10
etc...

Dat weet ik, heb het trouwens al toegepast. Mijn vraag was hoe ik die <select> kan genereren.

DarkBone

Legacy Member
Yeah, zo'n kleine minuut geleden viel mijn frank ;)
Had vraag niet goed gelezen... excuses ;)

DarkBone

Legacy Member
Zo'n dingen zijn toch makkelijk te beredeneren... zou vlotjes uit uw pen *schrap* toetsenbord moeten komen hoor...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan