sBENETT
Invité n'ayant pas de compte PHPfrance
28 nov. 2011, 11:16
Je comprends, oui c'est vrai je désire que se soit vraiment fluide et simplifié.
Mais la solution que vous me proposez ne fonctionne pas, je ne sais pas exactement comment l'appliqué. Je vous cite ici, ma focntion de pagination et mon formulaire de page détails afin que vous puissiez peut-etre m'aider plus facilement.
Ma fonction de pagination:
function barre_navigation ($nb_total,
$nb_affichage_par_page,
$debut,
$nb_liens_dans_la_barre) {
$barre = '';
// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
if ($_SERVER['QUERY_STRING'] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1) {
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
}
else {
if ($tableau[0] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
}
}
}
// on calcul le numéro de la page active
$page_active = floor(($debut/$nb_affichage_par_page)+1);
// on calcul le nombre de pages total que va prendre notre affichage
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
if ($nb_liens_dans_la_barre%2==0) {
$cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
$cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
}
else {
$cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
$cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
}
if ($cpt_deb1 <= 1) {
$cpt_deb = 1;
$cpt_fin = $nb_liens_dans_la_barre;
}
elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
$cpt_deb = $cpt_deb1;
$cpt_fin = $cpt_fin1;
}
else {
$cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
$cpt_fin = $nb_pages_total;
}
if ($nb_pages_total <= $nb_liens_dans_la_barre) {
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}
// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if ($cpt_deb != 1) {
$cible = $query.(0);
$lien = '<A HREF="'.$cible.'"><<</A> ';
}
else {
$lien='';
}
$barre .= $lien;
// on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
if ($cpt == $page_active) {
if ($cpt == $nb_pages_total) {
$barre .= $cpt;
}
else {
$barre .= $cpt.' - ';
}
}
else {
if ($cpt == $cpt_fin) {
$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A>";
}
else {
$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A> - ";
}
}
}
$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}
// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ($cpt_fin != $nb_pages_total) {
$cible = $query.$fin;
$lien = ' <A HREF="'.$cible.'">>></A>';
}
else {
$lien='';
}
$barre .= $lien;
return $barre;
}
?>
Ainsi que mon formulaire de page detail.php:
echo"<form name=\"details\" id=\"details\" action=\"resultat.php\" method=\"post\">";
echo"<tr><td>";
if($residence[22]=="1"){
echo "<img src=\"photos/gite.gif\" height=\"30\" width=\"30\" />";
echo "</br></br>";
}
echo"<li><span> Résidence: </span>".$residence[0]."</li></br>";
echo"<li><span> Adresse: </span>".$residence[1]."</li></br>";
echo"<li><span> Code Postal: </span>".$residence[2]."</li></br>";
echo"<li><span> Ville: </span>".$residence[3]."</li></br>";
echo"<li><span> Capacité: </span>".$residence[4]." personnes</li></br>";
if($residence[23]=="4"){
if($residence[22]=="0"){
echo "<li><span>Classement: </span>UDOTSI</li></br>";
}
else{
if($residence[21]=="1"){
echo "<li><span>Classement: </span>".$residence[21]." épi</li></br>";
}
else{
echo "<li><span>Classement: </span>".$residence[21]." épis</li></br>";
}
}
}
else{
if($residence[22]=="0"){
if($residence[21]=="5"){
echo "<li><span>Classement: </span>UDOTSI</li></br>";
}
else{
if($residence[21]=="1"){
echo "<li><span>Classement: </span>".$residence[21]." étoile</li></br>";
}
else{
echo "<li><span>Classement: </span>".$residence[21]." étoiles</li></br>";
}
}
}
else{
if($residence[21]=="1"){
echo "<li><span>Classement: </span>".$residence[21]." épi</li></br>";
}
else{
echo "<li><span>Classement: </span>".$residence[21]." épis</li></br>";
}
}
}
echo"<li><span> Prix: </span>".$residence[5]." € par journée</li></br>";
echo"<li><span> Nombre(s) de logement(s) disponible à cette adresse: </span>".$residence[20]."</li></td></tr></br>";
echo"<tr><td>";
if($residence[6]!=" "){
echo"<center><img src=".$residence[6]." width=\"500\" style=\"border-style:groove; color:black;\"/></center>";
echo"</td></tr></br>";
echo"<tr><td><center><a href=".$residence[6]." rel=\"gb_imageset[album]\" ><img src=".$residence[6]." height=\"67\" width=\"89\" style=\"border-style:groove; color:black;\"/></a>" ;
}
if($residence[6]==" "){
echo"<center><img src=\"photos/pasdephoto.jpg\" width=\"500\" style=\"border-style:groove; color:black;\"/></center>";
}
if($residence[7]!=" "){
echo"<a href=".$residence[7]." rel=\"gb_imageset[album]\"><img src=".$residence[7]." height=\"67\" width=\"89\" style=\"border-style:groove; color:black;\"/></a>";
}
if($residence[8]!=" "){
echo"<a href=".$residence[8]." rel=\"gb_imageset[album]\"><img src=".$residence[8]." height=\"67\" width=\"89\" style=\"border-style:groove; color:black;\"/></a>";
}
if($residence[9]!=" "){
echo"<a href=".$residence[9]." rel=\"gb_imageset[album]\"><img src=".$residence[9]." height=\"67\" width=\"89\" style=\"border-style:groove; color:black;\"/></a>";
}
if($residence[10]!=" "){
echo"<a href=".$residence[10]." rel=\"gb_imageset[album]\"><img src=".$residence[10]." height=\"67\" width=\"89\" style=\"border-style:groove; color:black;\"/></a>";
echo"</center>";
}
if($residence[6]!=" "){
echo "<center><span>Cliquer sur les vignettes pour les agrandir</span></td></tr></center>";
}
echo"<tr><td><li><span> Description: </span>".$residence[11]."</li></br>";
echo'<li><span>Site internet: </span><a href="'.$residence[12].'" target=\"_blank\">'.$residence[12].'</a></li></td></tr></br>';
echo"<tr><td><center><span class=\"contact\">Contact</span></center></br></br>";
echo"<li><span> Nom: </span>".$residence[13]."</li></br>";
echo"<li><span> Adresse: </span>".$residence[14]."</li></br>";
echo"<li><span> Code Postal: </span>".$residence[15]."</li></br>";
echo"<li><span> Ville: </span>".$residence[16]."</li></br>";
echo"<li><span> Tel: </span>".$residence[17]."</li></br>";
echo"<li><span> Fax: </span>".$residence[18]."</li></br>";
echo'<li><span> Mail: </span><a href="mailto:'.$residence[19].'">'.$residence[19].'</a></li></td><tr>';
echo"</tbody></table>";
echo"<input type=\"submit\" value=\"Retour\" name=\"recommencer\">";
echo"</form>";
Merci pour votre aide.
sBENETT