2015-07-06 3 views
5

Ho un'impaginazione e voglio raggiungere e limitarla ai numeri di pagina 5,Come mostrare al massimo 5 numeri in una paginazione?

vedere qui sotto:

Esempi:

PREVIOUS 1 2 3 4 5 NEXT 
PREVIOUS 20 21 22 23 ... 39 NEXT 
PREVIOUS 59 ... 81 82 83 84 NEXT 

Solo cinque il numero di pagina che dovrebbero essere di visualizzazione.
Quale parte del codice devo modificare e modificare?

Ho problemi con la combinazione.

<?php 
/* Setup page vars for display. */ 
if ($page == 0) $page = 1;     //if no page var is given, default to 1. 
$prev = $page - 1;       //previous page is page - 1 
$next = $page + 1;       //next page is page + 1 
$lastpage = ceil($total_pages/$limit);  //lastpage is = total pages/items per page, rounded up. 
$lpm1 = $lastpage - 1;      //last page minus 1 

/* 
    Now we apply our rules and draw the pagination object. 
    We're actually saving the code to a variable in case we want to draw it more than once. 
*/ 
    $pagination = ""; 
    if($lastpage > 1) 
    { 
     $pagination .= "<div class=\"pagination\">"; 
    //previous buttons 
     if ($page > 1) 
      $pagination.= "<a class='buttons' href=\"$targetpage?page=$prev\">previous</a>"; 
     else 
      $pagination.= "<a class='disabled'><buttons disabled>previous</buttons></a>"; 

    //pages 
    if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up 
    { 
     for ($counter = 1; $counter <= $lastpage; $counter++) 
     { 
      if ($counter == $page) 
       $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; 
      else 
       $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";     
     } 
    } 
    elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some 
    { 
     //close to beginning; only hide later pages 
     if($page < 1 + ($adjacents * 2))   
     { 
      for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; 
       else 
        $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";     
      } 
      $pagination.= "..."; 
      $pagination.= "<a class='buttons' href=\"$targetpage?page=$lpm1\">$lpm1</a>"; 
      $pagination.= "<a class='buttons' href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
     } 
     //in middle; hide some front and some back 
     elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) 
     { 
      $pagination.= "<a class='buttons' href=\"$targetpage?page=1\"> 1 </a>"; 
      $pagination.= "<a class='buttons' href=\"$targetpage?page=2\"> 2 </a>"; 
      $pagination.= "..."; 
      for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; 
       else 
        $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";     
      } 
      $pagination.= "..."; 
      $pagination.= "<a class='buttons' href=\"$targetpage?page=$lpm1\">$lpm1</a>"; 
      $pagination.= "<a class='buttons' href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
     } 
     //close to end; only hide early pages 
     else 
     { 
      $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; 
      $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; 
      $pagination.= "..."; 
      for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; 
       else 
        $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";     
      } 
     } 
    } 

    //next buttons 
    if ($page < $counter - 1) 
     $pagination.= "<a class='buttons' href=\"$targetpage?page=$next\">next</a>"; 
    else 
     $pagination.= "<a class='buttons'>next</a>"; 
    $pagination.= "</div>\n";  
} 
?> 

Sto avendo problema tracciando il limite per la visualizzazione del numero di pagina.

+0

è necessario modificare il codice dopo il commento '// abbastanza pagine per nascondere some' –

+0

Può essere più preciso? Lo faccio tra un paio di giorni e non riesco a capirlo. jaromanda –

+0

_ "risolto solo" _? Corretto cosa? – Cerbrus

risposta

0

Questo ha funzionato per me. Devi passare il numero di pagina corrente e il numero totale di pagine alla funzione.

function pageRange(page,pageCount){ 

var start = page-2, 
    end = page+2; 

if(end>pageCount){ 
    start-=(end-pageCount); 
    end=pageCount; 
} 
if(start<=0){ 
    end+=((start-1)*(-1)); 
    start=1; 
} 

end = end>pageCount?pageCount:end; 

return {start:start, end:end}; 
} 

EDIT: controllare questo violino ho fatto https://jsfiddle.net/qsLp6ajL/2/

+0

Quindi aggiungerò questa funzione nel mio codice di impaginazione? –

+0

ya chiama questa funzione passando i parametri. Funziona bene per me. – Anand

+0

fammi provare questo .. –

1

ho usato qui di seguito il codice per il mio wordpress plugin per visualizzare i dati di paginazione e di visualizzazione nella tabella. Puoi usare questo secondo la tua query mysql.

<?php echo '<table width="100%" border="1" cellspacing="0" cellpadding="0">'; ?> 
    <col width="10%" /> 
    <col width="25%" /> 
    <col width="25%" /> 
    <col width="30%" /> 
    <col width="10%" /> 

<?php 
     echo '<tr class="st_th" height="30px">'; 
     echo '<th class="th_id"> ID</th>';  
     echo '<th class="st_th1"> Name</th>'; 
     echo '<th class="st_th1"> Phone</th>'; 
     echo '<th class="st_th1">Address</th>'; 
     echo '<th class="st_th1">Details</th>'; 
     echo '</tr>'; 
     global $wpdb; 
     $num_rec_per_page=4; 

     if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; }; 
     $start_from = ($page-1) * $num_rec_per_page; 
     $sql = "SELECT * FROM {$wpdb->prefix}addressbook LIMIT $start_from, $num_rec_per_page"; 


     $result = $wpdb->get_results($sql); 

     foreach($result as $row) 
     { 
      echo '<tr height="25px">'; 
       echo '<td width="10%" class="fast_t">' . $row->id. '</td>'; 
       echo '<td class="st_th1" style="padding-left:5px; width:200px">' . $row->f_name, ' ', $row->m_name, ' ', $row->l_name . '</td>'; 
       echo '<td class="st_th1" style="padding-left:5px;width:200px">' . $row->phone . '</td>';   
       echo '<td class="st_th1" style="padding-left:5px;width:200px">' . $row->address . '</td>'; 
       //echo '<td style="padding-left:5px">' . $row->address . '</td>'; 

       $pages2 = get_pages(array(
        'meta_key' => '_wp_page_template', 
        'meta_value' => 'user_list_page.php' 
       )); 
       foreach($pages2 as $page2){ 
        //echo $page->ID.'<br />'; 

       } 
       if (is_user_logged_in()) { 
       $user_ID = get_current_user_id(); 
       } 
       if ($user_ID==$row->id) { 
        # code... 

        echo '<td '.$attributes.'>'; 
         //echo '<a href="'. get_permalink($page1->ID).'&id=' . $row->id . '"> Edit</a>|'; 
         if (get_option('permalink_structure')) { 
         echo '<a href="'. get_permalink($page->ID).'?id=' . $row->id . '"> Details</a>'; 
         //echo 'permalinks enabled'; 
        } else { 
         echo '<a href="'. get_permalink($page->ID).'&id=' . $row->id . '"> Details</a>'; 
        } 
       echo'</td>'; 
       } 
       if ($user_ID!=$row->id) { 
        echo '<td '.$attributes.'><a href="'. get_permalink($page->ID).'&id=' . $row->id . '"> Details</a></td>'; 
       } 

      echo '</tr>'; 
} 
echo '</table>'; 
$sql = "SELECT * FROM " . $wpdb->prefix."addressbook"; 
$rs_result = mysql_query($sql); //run the query 
$total_records = mysql_num_rows($rs_result); //count number of records 
$total_pages = ceil($total_records/$num_rec_per_page); 
$aaa = get_permalink($page2->ID);?> 
<div class="pagination"> 
<?php echo "<a href='".$aaa."&page=1'>".'|<'."</a> "; // Goto 1st page 
    for ($i=1; $i<=$total_pages; $i++) { 
     if (get_option('permalink_structure')) { 
         echo "<a href='".$aaa."?page=".$i."'>".$i."</a> "; 
         //echo 'permalinks enabled'; 
        } else { 
         echo "<a href='".$aaa."&page=".$i."'>".$i."</a> "; 
        } 

    }; 
    if (get_option('permalink_structure')) { 
         echo "<a href='".$aaa."?page=$total_pages'>".'>|'."</a> "; // Goto last page 

        } else { 
         echo "<a href='".$aaa."&page=$total_pages'>".'>|'."</a> "; // Goto last page 
        } 

    echo '</div>';?> 
    </div> 
+0

grazie. –