2017-10-18 30 views
0

J'essaie de créer ma toute première "page d'informations". Au lieu de faire défiler l'éternité, j'essaie de faire une pagination simple, pour une meilleure expérience utilisateur.Limiter le nombre de pages en pagination

Jusqu'à présent, j'ai réussi à:

  • Afficher X nombre de nouvelles par site
  • pages Afficher en bas, pour faire défiler

Ce que je suis absent est que, S'il y a beaucoup de nouvelles, une énorme quantité de pages sera affichée. Ce serait beaucoup plus agréable, si j'étais capable de limiter la quantité de pages affichées:

Par exemple; si je suis à la page 5, je devrais être capable de voir, Page 2, 3, 4, 5, 6, 7, 8.

Comment puis-je implémenter cela à mon code? Je suis très incertain de cela.

Mon code

<? 

$sqlDos = "SELECT COUNT(id) FROM articles"; 


$rs_result = mysqli_query($con, $sqlDos); 
$row = mysqli_fetch_row($rs_result); 
$total_records = $row[0]; 

$total_pages = ceil($total_records/$limit); 
$pagLink = "<div class='pagination'>"; 


for ($i=1; $i<=$total_pages; $i++) { 
    if ($i == $page) { 
     $pagLink .= "<a class='active' href='#'>".$i."</a>"; 
    } else { 
     $pagLink .= " <a href='news.php?page=".$i."'>".$i."</a>"; 
    } 
}; 


echo $pagLink . "</div>"; 

?> 

J'espère que vous prendrez votre temps pour expliquer comment cela peut se faire, comme ceci est mon premier projet similaire.

Merci beaucoup! :-)

EDIT Je n'ai montré le code qui est pertinent, donc certaines variables manquantes peut-être montrer ce qu'ils sont - laissez-moi savoir si vous pensez que quelque chose manque :)

+0

si la page en cours est 2, Quelles sont toutes les pages que vous souhaitez afficher à l'utilisateur – Tarun

+0

@Tarun Ensuite, il ne devrait être 1, 2, 3 , 4, 5 - donc maximum de trois pages de chaque côté, mais si l'utilisateur est seulement à la page 2 comme vous le dites, le re ne devrait être qu'une page plus bas (page 1) :) –

+0

Ok, j'ai posté la réponse – Tarun

Répondre

0

post page en cours numéro au script PHP et appliquer la logique suivante:

$startPage = 1; 
$endPage = $page+ 3; 
if($currentPageNo > 3){ 
    $startPage = $page - 3; 
} 

for ($i=$startPage; $i<=$endPage; $i++) { 
    if ($i == $page) { 
     $pagLink .= "<a class='active' href='#'>".$i."</a>"; 
    } else { 
     $pagLink .= " <a href='news.php?page=".$i."'>".$i."</a>"; 
    } 
}; 
+1

merci de votre aide! C'était très simple de comprendre ce qu'il fallait faire - merci! –