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 :

Problème dans l'implémentation d'une fonction de pagination [Fait]


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Lost In Translation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 166
    Par défaut Problème dans l'implémentation d'une fonction de pagination
    Bonjour à tous, je n'ai pas trouvé de nom de sujet plus évocateur.

    Je me suis un peu perdu sur une fonction qui permet d'écrire le nombre de page.
    J'aimerais écrire quelque chose de la forme : n - n+1 - n+2 ... nmax-2 - nmax-1 - nmax.

    Exemple, j'affiche 3news par page, j'ai 30 news, j'ai donc 10 pages.
    Je veux écrire 1 - 2 - 3 ... Dernière si je suis sur la page 1
    si je suis sur la page 4 : 3 - 4 - 5 ... Dernière
    si je passe à la page 3 : 2 - 3 - 4 ... Dernière
    et si je suis sur la dernière : première ... Dernière-1 - Dernière

    J'ai commencé une fonction dans ma classe news mais elle ne marche pas très très bien. Quelqu'un pour me donner un coup de main ?

    Voici mon code actuel :

    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
    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
     
     public function DonnerLiensPages()
      {
       /*A savoir
       Seuil = 2
       NombreNews = nombre de news dans ma bdd
       NewsParPage = 3
       PageCourante = ne numéro de la page surlaquelle nous sommes, récupéré par un $_GET['Page']
       */
     
        $NombrePages = ceil($this->NombreNews/$this->NewsParPage);
        $i = $this->PageCourante + $this->Seuil; 
        $Courante = $this->PageCourante;
     
        //écriture du début sous la forme n - n+1 - n+2 
        if($NombrePages == 1)
          $this->EcrirePages .= '<a href="index.php5?Page=1">1</a>';
        elseif($NombrePages == 2)
          $this->EcrirePages .= '<a href="index.php5?Page=1">1</a> - <a href="index.php5?Page=2">2</a>';
        else
        {
          while($i >= $this->PageCourante)
          {
            $this->EcrirePages .= '<a href="index.php5?Page='.$Courante.'">'.$Courante.'</a> - ';
            $i--;
            $Courante++;
          }
        }
     
        //ajout du ... => n - n+1 - n+2 ... nmax-1 - nmax
        if($NombrePages > 3)
        {
          $this->EcrirePages .= '... - ';
          $Dernieres = $NombrePages - $this->Seuil;
     
          while($Dernieres <= $NombrePages)
          {
            if($Dernieres != $NombrePages)
              $this->EcrirePages .= '<a href="index.php5?Page='.$Dernieres.'">'.$Dernieres.'</a> - ';
            else
              $this->EcrirePages .= '<a href="index.php5?Page='.$Dernieres.'">'.$Dernieres.'</a>';
     
            $Dernieres++;
          }
        }
        $this->tpl->assign('NewsPages',$this->EcrirePages);
     
      }
    Merci de votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut
    Regarde ce tutorial, il pourra t'aider

  3. #3
    Membre confirmé Avatar de Lost In Translation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 166
    Par défaut
    merci bien, je n'avais pas vu ce tuto

    Merci @+

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

Discussions similaires

  1. [XL-2003] Probléme dans les arguments d'une fonction
    Par ClementZa dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/12/2010, 15h27
  2. Réponses: 3
    Dernier message: 09/03/2006, 15h12
  3. Réponses: 8
    Dernier message: 14/11/2005, 11h27
  4. Réponses: 3
    Dernier message: 15/07/2005, 17h58
  5. Pause dans l'exécution d'une fonction
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2005, 07h48

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