[RESOLU] pagination sous POST

Eléphant du PHP | 233 Messages

04 avr. 2015, 12:20

Bonjour à tous,
suite à mon dernier message, je voudrais faire une pagination avec la méthode POST.
Ca marche lors de la recherche, les liens de pages en bas sont bien affichées [1] suivant, [2] etc mais quand je clique sur le lien de pagination, c'est page blanche.
En résumé, il y a que la première page que fonctionne, le POST ne marche pas sur les pages suivantes...
Merci de votre aide
Je vous donne mon code :
if( isset($_GET['page']) && is_numeric($_GET['page']) )
        $page = $_GET['page'];
    else
        $page = 1;

      
    
    $pagination =1;
   
    $limit_start = ($page - 1) * $pagination;

if(empty($_POST['region'])) 
	echo'<br /><font color="red">Merci de choisir une région !</font><br /><br />';
else {
	$requete = "SELECT * FROM membre, region, departement as dpt, ville WHERE membre.id_departement=dpt.id_departement and region.id_region=dpt.id_region and membre.id_ville=ville.id_ville and membre.valide=1";

	if(empty($_POST['departement']) && empty($_POST['ville'])) 
		$requete .= " and membre.id_region='".$_POST['region']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";	

	elseif(empty($_POST['ville'])) 
		$requete .= " and membre.id_departement='".$_POST['departement']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";	

	else 
		$requete .= " and membre.id_departement='".$_POST['departement']."' and membre.id_ville='".$_POST['ville']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC LIMIT $limit_start, $pagination";
	
	$sql = mysqli_query($bdd,$requete)or die(mysqli_error($bdd));
}


while($row=mysqli_fetch_array($sql))
{ le reste du code ... }



$requete = "SELECT COUNT(membre.id) as nb_membre  FROM membre, region, departement as dpt, ville WHERE membre.id_departement=dpt.id_departement and region.id_region=dpt.id_region and membre.id_ville=ville.id_ville and membre.valide=1";

	if(empty($_POST['departement']) && empty($_POST['ville'])) 
		$requete .= " and membre.id_region='".$_POST['region']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";	

	elseif(empty($_POST['ville'])) 
		$requete .= " and membre.id_departement='".$_POST['departement']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";	

	else 
		$requete .= " and membre.id_departement='".$_POST['departement']."' and membre.id_ville='".$_POST['ville']."' and sexe='".$_POST['sexe']."' ORDER BY id DESC ";
	
	$page = mysqli_query($bdd,$requete)or die(mysqli_error($bdd));


	$donnees = mysqli_fetch_assoc($page);
    $nb_total= $donnees['nb_membre'];

	 $nb_pages = ceil($nb_total / $pagination);
     if ($nb_pages > 1) { echo'Allez à la page : ';
	 
	 if ($page > 1 )
        echo " <a href=\"resultat-membre.php?page=".($page-1)."\">Précédent</a> ";
    else
        echo "Précédent ";
	 
	 }
    $un = 1;
    $premier = max(1, $page - $un);
    $dernier = min($nb_pages, $page + $un);
    if ($premier > 1) {
    
    echo " <a href=\"resultat-membre.php\">[ 1 ]</a> ";
    if ($premier > 2) {
       
        echo " ... ";
        }
    }
      
   
    for ($i = $premier ; $i <= $dernier ; $i++) {
	if ($nb_pages > 1) {
        if ($i == $page )
            echo "[ $i ]";
        else
            echo " <a href=\"resultat-membre.php?page=$i\">[ $i ]</a> ";
    }
	}
    if ($dernier < $nb_pages) {
    if ($dernier < $nb_pages - 1) {
        
        echo " ... ";
    }
   
    echo "<a href=\"resultat-membre.php?page=$nb_pages\">[ $nb_pages ]</a>";
	
}
    
	
         ?>
    <?php
		 if ($nb_pages > 1) {
    if ($page < $nb_pages )
        echo " <a href=\"resultat-membre.php?page=".($page+1)."\">Suivant</a> ";
    else
        echo "Suivant";
		}
		}
 ?>

Eléphant du PHP | 233 Messages

04 avr. 2015, 21:16

Du coup je suis passé sous la méthode $_GET et c'est OK
Si ça intéresse quelqu'un merci de m'adresser un MP