Comment rendre ma pagination responsive

Résolu
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -  
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous

encore une nuit blanche a chercher après une chose spéciale et ou je suis resté sans réponse
les paginations automatique que j'ai trouvé sont superbe

car les onglets de paginations se crée au fur et a mesure des éléments a paginer

si on a pas beaucoup d articles on a que quelques onglets

mais dans mon cas je dois paginer + de 160 articles
donc cela me fait par incrément de 10
16 onglets

ce que je souhaiterais c'est de savoir comment réaliser
ceci
1/2/3.....45/46/47

voici ce qui se passe pour l instant en responsive

comment résoudre le soucis si possible sans javascript

j'ai bien trouver cette documentation mais comment la mettre en place

https://bootstrap-vue.org/docs/components/pagination-nav

voici mon code

     <div class="container" style=" max-width: 100%;margin:auto;">
                    <nav>
                    <ul class="pagination">
                        <!-- Lien vers la page précédente (désactivé si on se trouve sur la 1ère page) -->
                        <li class="page-item <?= ($currentPage == 1) ? "disabled" : "" ?>">
                            <a href="?page=<?= $currentPage - 1 ?>" class="page-link">Précédente</a>
                        </li>
                        <?php for($page = 1; $page <= $pages; $page++): ?>
                          <!-- Lien vers chacune des pages (activé si on se trouve sur la page correspondante) -->
                          <li class="page-item <?= ($currentPage == $page) ? "active" : "" ?>">
                                <a href="?page=<?= $page ?>" class="page-link"><?= $page ?></a>
                            </li>
                        <?php endfor ?>
                          <!-- Lien vers la page suivante (désactivé si on se trouve sur la dernière page) -->
                          <li class="page-item <?= ($currentPage == $pages) ? "disabled" : "" ?>">
                            <a href="?page=<?= $currentPage + 1 ?>" class="page-link">Suivante</a>
                        </li>
                    </ul>
                </nav>
            
        </div>

9 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Au lieu de faire une boucle sur tes X pages
     <?php for($page = 1; $page <= $pages; $page++): ?>
    


    Modifies ton code pour ne créer que 1 page avant, la page en cours, et une ou deux pages après ...

    C'est plus une question d'algorithmie que de html ou de css ....

    1
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Hello,

    Je reviens sur cette discussion...

    Perso, j'aurais sûrement fait un truc du genre
    <?php
    function getNavLink($currentPage=1,$numPage=1){
      $disabled = $currentPage == $numPage ? "disabled" : "" ;
      return  '<li class="page-item '.$disabled.'">
            <a href="?page='.$numPage.'" class="page-link">'.$numPage.'</a>
        </li>';
    }
    ?>
    
    <div class="container" style=" max-width: 100%;margin:auto;">
      <nav>
      <ul class="pagination">
        <!-- Lien vers la page précédente (désactivé si on se trouve sur la 1ère page) -->
        <?php
        //première page 
          if($currentPage >2 ){
            echo getNavLink($currentPage,1 );
          }
        
          //page actuelle moins 1
          if($currentPage >1 ){
            echo getNavLink($currentPage,$currentPage -1);
          }
          
          //page actuelle 
          echo getNavLink($currentPage,$currentPage);
          
          //page actuelle plus 1
          if($currentPage < $pages + 1 ){
            echo getNavLink($currentPage,$currentPage +1);
          }
          
          //Dernière page
          if($currentPage < $pages + 2 ){
            echo getNavLink($currentPage,$currentPage +2);
          }
          
        ?>
      </ul>
    </nav>
    
    </div>
    

    1
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      pardon...

      Oui
         
            //page actuelle plus 1
            if($currentPage < $pages - 1 ){
              echo getNavLink($currentPage,$currentPage +1);
            }
            
            //Dernière page
            if($currentPage < $pages - 2 ){
              echo getNavLink($currentPage,$currentPage +2);
            }
            
      0
      1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci Jordanne pour la correction
        mais cette fois c est la page 16 qui ne veux plus s afficher ...
        concernant le nombre de sortie il est bien calculer et je possède la bonne valeur
        la variable est affichée en haut du tableau
        https://phil.pecheperle.be/journee-peche/journees-de-peche3.php
        0
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
         
        Je ne suis pas bien réveillé ce matin..
              //page actuelle plus 1
              if($currentPage < $pages  ){
                echo getNavLink($currentPage,$currentPage +1);
              }
              
              //Dernière page
              if($currentPage < $pages - 1 ){
                echo getNavLink($currentPage,$currentPage +2);
              }
        
        0
      3. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        nickel jordane un super grand merci ,
        c 'est super

        bon week end
        et merci pour toute ton aide depuis des mois
        0
  3. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bonjour Jordane

    merci pour l aide
    Mais sur ce coup j avoue ne pas trop bien suivre
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    <?php for($page = 1; $page <= $pages; $page++): ?>


    donc je reviens pour essayer de comprendre , car aucun essais que je fais ne fonctionne

    $page = 1; 
    est la page du départ
    si je la modifie je suis en page 2 ou 3

    $page <= $pages
    c est ma page courante

    et enfin
    $page++
    c est l incrément des pages

    donc d après ce que je peux comprendre je dois modifier cette partie
    $page <= $pages

    si j écris ceci

    $page,$page  <= $pages
    cela plante entre autre
    j'ai essaye une multitude de combinaisons
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Non mais il faut enlever la boucle
      Et mettre trois boutons
      : un pour la page précédente un pour la page en cours et un pour la page suivante.
      Quand je dis un..., tu peux faire deux ou trois à toi de voir..
      0
  6. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    merci pour l aide
    si je dis que cela fait 4 h00 que je cherche , tu ne me croiras pas et pourtant ..

    voila en fait exact une fois la boucle partie il ne me reste plus que suivant et précédant et cela fonctionne

      <?php for($page = 1; $page <= $pages; $page++): ?>
                              <!-- Lien vers chacune des pages (activé si on se trouve sur la page correspondante) -->
                              <li class="page-item <?= ($currentPage == $page) ? "active" : "" ?>">
                                    <a href="?page=<?= $page ?>" class="page-link"><?= $page ?></a>
                                </li>
                            <?php endfor ?>


    voila ce que je viens de faire
      <li class="page-item"><a class="page-link " href="?page=<?= $page=1 ?>"><span>1</span></a></li>
                                 <li class="page-item"><a class="page-link " href="?page=<?= $page=2 ?>"><span>2</span></a></li>
                                 <li class="page-item"><a class="page-link " href="?page=<?= $page=3 ?>"><span>3</span></a></li>

    et donc de cette façon il ne voit 3 pages et pour voir les suivantes il doit cliquer sur suivant , si j'ai bien compris
    0
  7. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    voila tout fonctionne

    encore un super très grand merci jordane
    0
  8. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    bonjour
    merci pour le lien
    mais je préfère la solution de jordane qui est très légère
    0