j'utilise un script de pagination auquel je l'avoue je ne comprend pas tout.
<?php
function buildNavigation($pageNum_Recordset1,$totalPages_Recordset1,$prev_Recordset1,$next_Recordset1,$separator=" | ",$max_links=10, $show_page=true)
{
GLOBAL $maxRows_rsArticle,$totalRows_rsArticle;
$pagesArray = ""; $firstArray = ""; $lastArray = "";
if($max_links<2)$max_links=2;
if($pageNum_Recordset1<=$totalPages_Recordset1 && $pageNum_Recordset1>=0)
{
if ($pageNum_Recordset1 > ceil($max_links/2))
{
$fgp = $pageNum_Recordset1 - ceil($max_links/2) > 0 ? $pageNum_Recordset1 - ceil($max_links/2) : 1;
$egp = $pageNum_Recordset1 + ceil($max_links/2);
if ($egp >= $totalPages_Recordset1)
{
$egp = $totalPages_Recordset1+1;
$fgp = $totalPages_Recordset1 - ($max_links-1) > 0 ? $totalPages_Recordset1 - ($max_links-1) : 1;
}
}
else {
$fgp = 0;
$egp = $totalPages_Recordset1 >= $max_links ? $max_links : $totalPages_Recordset1+1;
}
if($totalPages_Recordset1 >= 1) {
$_get_vars = '';
if(!empty($_GET) || !empty($HTTP_GET_VARS)){
$_GET = empty($_GET) ? $HTTP_GET_VARS : $_GET;
foreach ($_GET as $_get_name => $_get_value) {
if ($_get_name != "pageNum_rsArticle") {
$_get_vars .= "&$_get_name=$_get_value";
}
}
}
$successivo = $pageNum_Recordset1+1;
$precedente = $pageNum_Recordset1-1;
$firstArray = ($pageNum_Recordset1 > 0) ? "<a href=\"$_SERVER[PHP_SELF]?pageNum_rsArticle=$precedente$_get_vars\" class=\"pagination\">$prev_Recordset1</a>" : "$prev_Recordset1";
for($a = $fgp+1; $a <= $egp; $a++){
$theNext = $a-1;
if($show_page)
{
$textLink = $a;
} else {
$min_l = (($a-1)*$maxRows_rsArticle) + 1;
$max_l = ($a*$maxRows_rsArticle >= $totalRows_rsArticle) ? $totalRows_rsArticle : ($a*$maxRows_rsArticle);
$textLink = "$min_l - $max_l";
}
$_ss_k = floor($theNext/26);
if ($theNext != $pageNum_Recordset1)
{
$pagesArray .= "<a href=\"$_SERVER[PHP_SELF]?pageNum_rsArticle=$theNext$_get_vars\" class=\"pagination\">";
$pagesArray .= "$textLink</a>" . ($theNext < $egp-1 ? $separator : "");
} else {
$pagesArray .= "$textLink" . ($theNext < $egp-1 ? $separator : "");
}
}
$theNext = $pageNum_Recordset1+1;
$offset_end = $totalPages_Recordset1;
$lastArray = ($pageNum_Recordset1 < $totalPages_Recordset1) ? "<a href=\"$_SERVER[PHP_SELF]?pageNum_rsArticle=$successivo$_get_vars\" class=\"pagination\">$next_Recordset1</a>" : "$next_Recordset1";
}
}
return array($firstArray,$pagesArray,$lastArray);
}
?>
puis on affiche les differents liens ainsi:
<?php
# variable declaration
$prev_rsArticle = "< ";
$next_rsArticle = "> ";
$separator = " | ";
$max_links = 15;
$pages_navigation_rsArticle = buildNavigation($pageNum_rsArticle,$totalPages_rsArticle,$prev_rsArticle,$next_rsArticle,$separator,$max_links,true);
print $pages_navigation_rsArticle[0];
?>
et
<?php print $pages_navigation_rsArticle[1]; ?>
ect ecttous ça fonctionne correctement en local sous firefox et explorer, et correctement en ligne sous firefox. Sous explorer un clic sur un lien ouvre une page vide car l'adresse devient relative et fausse - a noter que chez mon hebergeur le site est dans un dossier www.
par exemple voila l'adresse de la premiere page :
http://www.site.com//public/catalogue_c ... ategorie=2
un clic sur le lien de la pagination pour ouvrir la seconde page donne :
http://public/catalogue_categorie.php?p ... ategorie=2
et forcément cette page n'existe pas. Que se passe-t-il ici et qui n'est propre qu'a explorer.
Merci