2010-04-10 5 views
1

Quelqu'un peut-il aider dans ce script de navigation de page php sur le comptage du numéro de série normal? Dans ce script il y a un var appelé "page_id" - Je veux que ce var pour stocker le lien de la page réelle par ordre comme 0, 1, 2, 3, 4, 5 ...navigation page php par numéro de série

<? 
$onpage = 10; // on page 

/* 
$pagerecord - display records per page 
$activepage - current page 
$records - total records 
$rad - display links near current page (2 left + 2 right + current page = total 5) 
*/ 

function navigation($pagerecord, $activepage){ 

$records = 55; 
$rad = 4; 

if($records<=$pagerecord) return; 

$imax = (int)($records/$pagerecord); 
if ($records%$pagerecord>0)$imax=$imax+1; 

if($activepage == ''){ 
$for_start=$imax; 
$activepage = $imax-1; 
} 
$next = $activepage - 1; if ($next<0){$next=0;} 
$end =0; 
$prev = $activepage + 1; if ($prev>=$imax){$prev=$imax-1;} 
$start= $imax; 
if($activepage >= 0){ 
$for_start = $activepage + $rad + 1; 
if($for_start<$rad*2+1)$for_start = $rad*2+1; 
if($for_start>=$imax){ $for_start=$imax; } 
} 
if($activepage < $imax-1){ 
$str .= ' <a href="?page='.($start-1).'"><<< End</a> <span style="color:#CCCCCC">•</span> <a href="?page='.$prev.'">< Forward</a> | '; 
} 
$meter = $rad*2+1; //$rad; --------------------- 
for($i=$for_start-1; $i>-1; $i--){ 
$meter--; 
//$line = '|'; if ($meter=='0'){ $line = ''; } 
$line = ''; if ($i>0)$line = '|'; 
if($i<>$activepage){ 
$str .= " <a href='?page=".$i."&page_id=xxx'>".($i)."</a> ".$line." "; 
} else { 
$str .= " <strong>[".($i)."]</strong> ".$line." "; 
} 

if($meter=='0'){ break; } 
} 
if($activepage > 0){ 
$str .= " | <a href='?page=".$next."'>Back ></a> <span style='color:#CCCCCC'>•</span> <a href='?page=".($end)."'>Start >>></a> "; 
} 

return $str; 

} 

if(is_numeric($_GET["page"])) $page = $_GET["page"]; 
$navigation = navigation($onpage, $page); // detect navigation 

echo $navigation; 
?> 

Au lieu de cela xxx ici (page_id = xxx) Je veux lier au vrai numéro de page par ordre normal quand ce script montre des liens mais inversés.

Vraiment besoin d'aide avec ce genre de choses! Merci d'avance!

+1

Veuillez expliquer ce que ce script fait maintenant, ce qui ne fonctionne pas et ce que vous devez faire. Je ne pense pas que beaucoup de gens sont prêts à y travailler et à trouver tout ça :) –

+0

Ok, mis à jour avec un exemple de script travaillé! Tu peux le vérifier! C'est la navigation de page inversée. Mais j'ai besoin du vrai numéro de page par numéro de série comme 0,1,2,3,4! Peut être qu'il devrait y avoir un autre pour() dans le main pour() qui comptera comme $ j ++; ? – ilnur777

Répondre

0

J'ai été aidé par l'un des programmeurs avec mon script ci-dessus. Voici donc un exemple de navigation inversée sur PHP.

<? 
$onpage = 10; // on page 

/* 
$pagerecord - display records per page 
$activepage - current page 
$records - total records 
$rad - display links near current page (2 left + 2 right + current page = total 5) 
*/ 

function navigation($pagerecord, $activepage){ 

$records = 126; 
$rad = 4; 

if($records<=$pagerecord) return; 

$imax = (int)($records/$pagerecord); 
if ($records%$pagerecord>0)$imax=$imax+1; 

if($activepage == ''){ 
$for_start=$imax; 
$activepage = $imax-1; 
} 
$next = $activepage - 1; if ($next<0){$next=0;} 
$end =0; 
$prev = $activepage + 1; if ($prev>=$imax){$prev=$imax-1;} 
$start= $imax; 
if($activepage >= 0){ 
$for_start = $activepage + $rad + 1; 
if($for_start<$rad*2+1)$for_start = $rad*2+1; 
if($for_start>=$imax){ $for_start=$imax; } 
} 

$meter = $rad*2+1; //$rad; --------------------- 
$new_meter = $for_start-1; 
if($activepage < $imax-1){ 
$str .= ' <a href="?page='.($start-1).'&page_id='.$end.'"><<< End</a> <span style="color:#CCCCCC">•</span> <a href="?page='.$prev.'&page_id='.($imax-$prev-1).'">< Forward</a> | '; 
} 
for($i=$for_start-1; $i>-1; $i--){ 
$meter--; 
//$new_meter++; 
//$line = '|'; if ($meter=='0'){ $line = ''; } 
$line = ''; if ($i>0)$line = '|'; 
if($i<>$activepage){ 
$str .= " <a href='?page=".$i."&page_id=".($imax-$i-1)."'>".($i)."</a> ".$line." "; 
} else { 
$str .= " <strong>[".($i)."]</strong> ".$line." "; 
} 

if($meter=='0'){ break; } 
} 
if($activepage > 0){ 
$str .= " | <a href='?page=".$next."&page_id=".($imax-$next-1)."'>Back ></a> <span style='color:#CCCCCC'>•</span> <a href='?page=".($end)."&page_id=".($start-1)."'>Start >>></a> "; 
} 

return $str; 

} 

if(is_numeric($_GET["page"])) $page = $_GET["page"]; 
$navigation = navigation($onpage, $page); // detect navigation 

echo $navigation; 
?> 

$ page = conserve le numéro de page de l'ordre inverse

$ page_id = conserve la vraie page par ordre sériel. donc vous pouvez faire des requêtes SELECT à la base de données et ORDER BY id utiliser DESC.

Questions connexes