2010-02-16 2 views
3

Apprenant PHP. Le script de pagination ci-dessous semble généralement fonctionner, mais le problème est que sur chaque page de 20 enregistrements, lorsque je sélectionne des lignes (via des cases à cocher) et que je clique sur le bouton SOUMETTRE, l'affichage de 20 enregistrements revient à la page 1. Les lignes sélectionné sans problème, mais je ne comprends pas pourquoi il revient à la page 1.Erreur de script de pagination - Pourquoi revenir à la première page?

Le problème est-il évident dans le script ci-dessous? Merci!

//-----------------| 
// Add pagination. 
//-----------------| 

$nAdjacentPages = 3; 

// If the current page number is greater than 1, then display: 
// "<<" and "<" (i.e., << <). 

if ($nCurrentPage > 1) 
    { 
     echo " <a href = 
     '{$_SERVER['PHP_SELF']}?nCurrentPage=1'> << </a> " ; 
     $nPreviousPage = $nCurrentPage - 1 ; 
     echo " <a href = 
     '{$_SERVER['PHP_SELF']}?nCurrentPage=$nPreviousPage'> < </a> "; 
    } 

// Appearance of page links when viewing page 5: 
//  << < 2 3 4 [5] 6 7 8 > >> 

for ($x = ($nCurrentPage - $nAdjacentPages) ; 
     $x < (($nCurrentPage + $nAdjacentPages) + 1) ; 
     $x++) 
    { 
     // if it's a valid page number... 

     if (($x > 0) and ($x <= $nTotalPages)) 
     { 
      // If on current page, 'highlight' but do not link. 
      // If not current page, make it a link. 

      if ($x == $nCurrentPage) 
       { 
        echo " [<b> $x </b>] " ; 
       } 
      else 
       { 
        echo " <a href= 
        '{$_SERVER['PHP_SELF']}?nCurrentPage=$x'> $x </a> " ; 
       } 
     } 
    } 

// If not last page, show '>' and '>>' links. 

if ($nCurrentPage != $nTotalPages) 
    { 
     $nNextPage = $nCurrentPage + 1; 
     echo " <a href = 
     '{$_SERVER['PHP_SELF']}?nCurrentPage=$nNextPage'> > </a> "; 
     echo " <a href = 
     '{$_SERVER['PHP_SELF']}?nCurrentPage=$nTotalPages'> >> </a> "; 
    } 
?> 
+0

Pouvez-vous poster le code HTML pour le formulaire? Cela aidera à déterminer pourquoi il revient à la page 1. –

Répondre

0

Il revient à la page 1 parce que votre formulaire action est probablement juste script.php.

Si votre formulaire utilise la méthode GET, ajoutez un champ masqué nommé nCurrentPage au formulaire avec la valeur correcte de la page en cours.

Si votre formulaire utilise la méthode POST, puis ajouter ?nCurrentPage=$nCurrentPage (ou autre ...) à la forme action (pour le faire, par exemple, script.php?nCurrentPage=3), ou utiliser la méthode de champ masqué ci-dessus et changer ce script aussi vérifier $_POST en plus de $_GET qu'il semble déjà faire.

+0

Ok, merci! On dirait que ça va le faire! Merci d'avoir révisé. – dave

0

Le formulaire qui comprend le bouton soumettre et les cases à cocher doit inclure une entrée cachée qui donne la valeur actuelle de la variable nCurrentPage.

Questions connexes