Petit problème pagination deuxième page [Résolu]

mantraax 7 Messages postés lundi 16 juillet 2007Date d'inscription 5 janvier 2016 Dernière intervention - 16 nov. 2015 à 22:30 - Dernière réponse : mantraax 7 Messages postés lundi 16 juillet 2007Date d'inscription 5 janvier 2016 Dernière intervention
- 17 nov. 2015 à 01:03
Bonjour,

J'ai réalisé un petit moteur de recherche sur mon site mais il y a un petit probleme sur ma pagination.
quand je fait une recherche, il me dirige bien vers une nouvelle page avec les résultats (9 maximum par page) mais quand je clique sur la page deux, il n'y a aucun résutat.
Je pense qu'il faudrait que je récupère la valeur saisie dans le champs de recherche pour ma page deux avec un $_GET mais je n'y arrive pas.
Quelqu'un pourrait m'aider svp? Merci


<!--********************************************* PROFILS *******************************************-->
<?php
$city = $_POST["villes"]; // récupération des données du champs de recherche
?>

<?php
$perPage = 9; // resultats max par page

$req = $db->query("SELECT COUNT(*) AS total FROM profils WHERE ville = '$city'" ); // calcul nb de page
$result = $req->fetch();
$total = $result['total'];


$nbPage = ceil($total/$perPage);

if(isset($_GET['page']) && !empty($_GET['page']) && ctype_digit($_GET['page']) == 1){
if ($_GET['page'] > $nbPage) {
$page = $nbPage;
}else{
$page = $_GET['page'];
}

}else{

$page = 1;
}

$first = ($page-1)*$perPage;


$reponse = $db->query("SELECT * FROM profils WHERE ville = '$city' ORDER BY id DESC LIMIT $first, $perPage" );
while ($donnees = $reponse->fetch())
{
?>

<div class="box-cadre-catalogue">
<img src="profils/<?php echo $donnees['photo']; ?>" class="photo1-catalogue" width="219" height="330">
<?php echo "<a href='".$donnees['lien']."'>"; ?> <img src="images/1cadre.png"class="cadre1-catalogue"></a>
<p class="prenom-catalogue"><?php echo $donnees['prenom']; ?>
<?php echo ageCalculator($donnees['age']);?> ans</p>


</div>

<?php } ?>

<!-- ************************************* NUMÉROS DE PAGES ******************************************-->

<div class="numeros-pages">
<ul id="pagination">


<?php

if ($page > 1):
?><a href="?page=<?php echo $page - 1; ?>">Précédent</a> <?php
endif;



for ($i = 1; $i <= $nbPage; $i++):
if($i == $page){
?><li class="active"><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a></li>
<?php
}

else{
?>
<li><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a></li><?php }



endfor;
if ($page < $nbPage):
?> <a href="?page=<?php echo $page + 1; ?>">Suivant</a><?php
endif;
?>
</ul>

</div>

--
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
jordane45 21718 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juillet 2018 Dernière intervention - 17 nov. 2015 à 00:22
1
Merci
Bonjour,


Je pense qu'il faudrait que je récupère la valeur saisie dans le champs de recherche pour ma page deux avec un $_GET mais je n'y arrive pas.

Et qu'as tu essayé pour ça ??


Je pense qu'il te suffit de passer la variable directement dans tes liens
par exemple :
if ($page < $nbPage){
    $pageNext = $page + 1;
    echo "a href='?page=$pageNext &city=$city'>Suivant</a>";
}
?>



Et bien entendu.. au début de ta page, pour récupérer ta variable $city il faudra changer comme ceci :

<?php
$city = isset($_POST['villes']) ? $_POST['villes'] : ( !empty($_GET['villes']) ? $_GET['villes'] : '') ;  // récupération des données du champs de recherche

Ainsi tu récupères la variable en POST si elle existe.. sinon en GET.

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de jordane45
mantraax 7 Messages postés lundi 16 juillet 2007Date d'inscription 5 janvier 2016 Dernière intervention - 17 nov. 2015 à 01:03
0
Merci
MERCI MERCI MERCI !!!!!
2 jours que je tourne autour du pot sans trouver, tu me sauves.

j'apprécie vraiment ton aide

Merci encore Jordan45! :D

--
Commenter la réponse de mantraax

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.