Pagination komut dosyası hata - Neden geri ilk sayfa atlama?

2 Cevap php

PHP öğrenci. Aşağıdaki sayfalama komut genellikle çalışmıyor gibi görünüyor, ama sorun ben (onay kutularını aracılığıyla) bazı satırları seçin ve GÖNDER butonuna tıkladığınızda 20 kayıtları her sayfada, 20 kayıtların ekran arka sayfasında 1 atlar olmasıdır. Satırlar Bir sorun olmadan seçilmiş, ama sayfa 1 döner neden idrak edemez.

Sorun aşağıdaki komut açıktır? Teşekkürler!

//-----------------|
// 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> ";
   } 
?>

2 Cevap

Lütfen form action muhtemelen sadece script.php çünkü sayfa 1 geri atlıyor.

Form GET yöntemini kullanıyorsa, o zaman geçerli sayfanın doğru değeri ile form nCurrentPage adında gizli bir alan ekleyin.

Form POST yöntemini kullanıyorsa, o zaman action (bu, örneğin, {[yapmak için form ?nCurrentPage=$nCurrentPage (ya da her neyse ...) ekleyebilir (3)]}), ya da yukarıdaki gizli alan yöntemini kullanın ve aynı zamanda [(4)]} $_GET ek olarak {kontrol etmek için bu komut dosyasını değiştirmek zaten yapmak gibi görünüyor.

Gönder düğmesini ve onay kutularını içeren formu nCurrentPage değişkenin geçerli değerini veren gizli bir giriş eklemek gerekiyor.