IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pagination et passage de paramètre dans un GET


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut Pagination et passage de paramètre dans un GET
    Bonjour, j'ai une page qui affiche des images, 5 colonnes sur 3 lignes (donc 15 par pages), certaines catégories ont plus de 15 images, d'autres moins, quand il y en a plus, je voudrais mettre une pagination au dessous, pour qu'on clique sur la page 2 et qu'on accède aux autres pages.

    J'ai tenté de cette façon, mais j'ai (et c'est normal), les p= qui se concatènent dans l'url, ce qui fait que j'ai très vite ceci à la fin de l'url : &p=2&p=3&p=4

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    if($compt%15==0){
     
    	$stop=1;
     
    	if(!isset($_GET['p'])){
    		$url=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
    		echo '<div class="pagination">'.$pageAct." / <a href='".$url."&p=2'>".$pageSuiv.'</a> >> </div>';
     
    	}
    	else
    	{
    		$url=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
    		$pageAct--;
    		echo '<div class="pagination"><< '.$pageAct." - <a href='".$url."&p=".$pageSuiv."'>".$pageSuiv.'</a> >> </div>';
    	}
     
    	$pageAct++;
    	$pageSuiv++;
    }
    je pense pas que ce soit la meilleur façon de procéder donc si vous avez une meilleure idée je suis partant

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 741
    Points : 5 428
    Points
    5 428
    Par défaut
    C'est parce qu'il faut penser à supprimer le "&" et tout ce qu'il y a derrière.
    Regarde les fonctions de gestion chaînes...

    Ou alors, tu note la lien de la page en dur et tu ajoute tes paramètres à la suite.

  3. #3
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut
    Bonjour et merci pour tes 2 solutions,
    pour la première, je pense à la fonction explode, je les connais pas toutes.

    et pour ta 2e solution, c'est vrai qu'au lieu de passer par $_SERVER['QUERY_STRING'] , je peux vite remettre les paramètres par les $_GET.

    Je vais tenter, merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    On peut manipuler directement $_GET et le "resérialiser" ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // Je récupère/sauvegarde la page actuelle (paramètre p) :
    if (isset($_GET['p'])) {
        $pageAct = intval($_GET['p']);
        unset($_GET['p']); // On supprime le paramètre p
    } else {
        $pageAct = 0;
    }
     
    // ...
     
    // Je sérialise $_GET (sans le paramètre p s'il était défini)
    ini_set('arg_separator.output', '&amp;'); // Pour être sûr que http_build_query génère un code XHTML valide
    $queryString = http_build_query($_GET);
     
    // ... (on peut générer des liens qui reprennent les autres paramètres GET et réintégrer p pour la pagination en utilisant $queryString)

  5. #5
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut
    Merci !! C'est exactement ce que je recherchais, changer le $_GET et l'incrémenter, je n'ai pas encore testé, j'ai compris la première partie de ton code,

    la seconde, j'ai vu à quoi sert la fonction ini_set, le premier argument, c'est le &, mais le &amp, je ne sais pas ce que c'est. Comment il sait qu'il s'agit de $_GET['p']?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par Marc22 Voir le message
    le premier argument, c'est le &, mais le &amp, je ne sais pas ce que c'est
    &amp; est l'entité XHTML/XML permettant de représenter le caractère &.

    Citation Envoyé par Marc22 Voir le message
    Comment il sait qu'il s'agit de $_GET['p']?
    Parce qu'on le supprime avant si ce paramètre existe (via la fonction unset). (enfin j'espère avoir fait une lecture correcte de l'extrait de votre code)

  7. #7
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut
    à la base j'avais réussi en rajoutant les variables en dur, mais je note cet exemple et vous en remercie parce que je ne connaissais pas http_build_query, ça m'a l'air relativement récent.

    Bonne journée !

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Version 5.0.0 Beta 2
    30-Oct-2003

    Added new functions:
    * http_build_query()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. passage de paramètre dans un LIKE
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2006, 16h04
  2. passage de paramètres dans l'invite de commande
    Par mr_neness dans le forum Langage
    Réponses: 10
    Dernier message: 18/11/2005, 15h01
  3. Passage de paramètres dans champ hidden
    Par benassis dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/05/2005, 01h22
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo