Page 1 sur 1

Problème sur pagination

Posté : 08 déc. 2015, 23:23
par yoann38
Salut à tous.
Je suis entrain de mettre en place une pagination normalement simple mais je rencontre un soucis.
Les parametres sont pris en compte mais ne marche pas.

Pour l'exemple:
la page par default est :
www.monsite/article.html

Si je je clique sur le bouton 2 de ma pagination il m'affiche donc:
www.monsite/article.html?p=2 ( mais rien ne se passe ça ne me change pas de page )

Et si reclic sur une atre page ca rajoute les parametres à l'url
exemple : www.monsite/article.html?p=2?p=3

Merci à vous

L'essentiel du code:
//traitement pagination
		if(isset($_GET['p']) && $_GET['p']>0 &&  $_GET['p']<=$nbPage) {
			$cpage = $_GET['p'];
		}
		else {
			$cpage = 1;
		}
		
		$pageactuel = $_SERVER['REQUEST_URI'];
		$nb;
		$perPage = 3;
		$nbPage = ceil($nb/$perPage);
		$cpage = 1;
			
       for ($i=1;$i<=$nbPage;$i++) {
	   		echo '<a href="'.$pageactuel.'?p='.$i.'">'.$i.' </a>/';
				   }


		$sql .= ' ORDER BY `loisirs`.`id_loisirs` DESC LIMIT '.$perPage;

Re: Problème sur pagination

Posté : 08 déc. 2015, 23:31
par or 1
surement du à l'url rewrting, il faut donc ajouter une possible information de page à son schéma.

Re: Problème sur pagination

Posté : 09 déc. 2015, 10:15
par Spols
Tu a une condition qui détecte ton paramètre GET p et qui rempli la variable $cpage en fonction de
et puis tu redéfini ta variable $cpage quelques lignes plus loin. cela rend donc ta condition obsolète.

pour ta variable $pageactuel, il te faudrait récupérer uniquement le nom de la page, pas tes paramètres. soit en changeant de variable SERVER soit en travaillant dessus avec des fonctions de traitement de STRING

Re: Problème sur pagination

Posté : 10 déc. 2015, 13:24
par Elie
www.monsite/article.html c'est deja de l'url rewriting donc si tu passes des variables derriere avec ?= il ne les liras pas...
Donc soit faire www.monsite/article-p2.html
Ou alors fais un print_r($_SERVER) pour voir comment isoler ce qu'il y a après .html

Re: Problème sur pagination

Posté : 10 déc. 2015, 19:29
par two3d
Il peut très bien les lires, il suffit de rajouter le flag QSA dans la règle du fichier htaccess:
RewriteRule ^article.html$ article.php [L,QSA]
QSA pour Query String Append ;)

Ta requete est pas bonne:

Code : Tout sélectionner

$sql .= ' ORDER BY `loisirs`.`id_loisirs` DESC LIMIT '.$perPage;
là comme elle est rédigée, quand tu affichera la page 2, ça va te mettre 6 enregistrement, la page 3: 9 enregistrement, ainsi de suite, il te faut limite le nombre de résultat qui s'affiche avec une vigule:

Code : Tout sélectionner

$sql .= ' ORDER BY `loisirs`.`id_loisirs` DESC LIMIT '.$ApartirDe.','.$perPage;
Cette partie doit être modifiée:

Code : Tout sélectionner

echo '<a href="'.$pageactuel.'?p='.$i.'">'.$i.' </a>/';
par:

Code : Tout sélectionner

echo '<a href="article.html?p='.$i.'">'.$i.' </a>/';
lien en "dur", c'est comme ça qu'on dit ?

Re: Problème sur pagination

Posté : 10 déc. 2015, 19:49
par Elie
Bon bah j'ai appris un truc du coup !