2009-10-06 16 views
8

Speriamo che questo sia qualcosa che sarà facile da porre rimedio. Ho un po 'di problemi a capire il plugin jQuery Pagination.jQuery Plugin paginazione

In sostanza, tutto ciò che sto cercando di fare è caricare un file PHP e quindi impaginare i risultati. Sto tentando di escludere il loro esempio, ma non sto dando i risultati che sto cercando.

Ecco il JavaScript:

function pageselectCallback(page_index, jq){ 
      var new_content = $('#hiddenresult div.result:eq('+page_index+')').clone(); 
      $('#Searchresult').empty().append(new_content); 
      return false; 
     } 
     function initPagination() { 
      var num_entries = $('#hiddenresult div.result').length; 
      // Create pagination element 
      $("#Pagination").pagination(num_entries, { 
       num_edge_entries: 2, 
       num_display_entries: 8, 
       callback: pageselectCallback, 
       items_per_page:3 
      }); 
     }  
     $(document).ready(function(){  
      $('#hiddenresult').load('load.php', null, initPagination); 
     });  

Ecco il mio HTML (dopo che il PHP è stato caricato):

 <div id="Pagination" class="pagination"> </div> 
     <br style="clear:both;" /> 
     <div id="Searchresult"> </div> 

     <div id="hiddenresult" style="display:none;"> 
     <div class="result">Result #1</div> 
     <div class="result">Result #2</div> 
     <div class="result">Result #3</div> 
     <div class="result">Result #4</div> 
     <div class="result">Result #5</div> 
     <div class="result">Result #6</div> 
     <div class="result">Result #7</div> 
     </div> 

In sostanza, sto cercando di mostrare "3" oggetti per pagina, ma questo non funziona. Presumo che da qualche parte, avrò bisogno di creare un ciclo for nel mio JS, ma sono confuso su come farlo. The documentation can be found here.

+0

Hey uomini Ho stessi problemi come la tua, ma ho provato a fare tutto lo script qui, ma ce l'ho fatta tramite Spero che questo aiuti al tuo problema http://bit.ly/free-pagination è solo script personalizzato non plugsin ma davvero utile –

risposta

18

Non è nemmeno necessario utilizzare un ciclo for, basta usare il metodo slice() di jQuery e un po 'di matematica.

Ho ospitato una demo a lavorare su JS Bin: http://jsbin.com/upuwe (modificabile tramite http://jsbin.com/upuwe/edit)

Ecco il codice modificato:

var pagination_options = { 
    num_edge_entries: 2, 
    num_display_entries: 8, 
    callback: pageselectCallback, 
    items_per_page:3 
} 
function pageselectCallback(page_index, jq){ 
    var items_per_page = pagination_options.items_per_page; 
    var offset = page_index * items_per_page; 
    var new_content = $('#hiddenresult div.result').slice(offset, offset + items_per_page).clone(); 
    $('#Searchresult').empty().append(new_content); 
    return false; 
} 
function initPagination() { 
    var num_entries = $('#hiddenresult div.result').length; 
    // Create pagination element 
    $("#Pagination").pagination(num_entries, pagination_options); 
} 
+0

Brian, è stato fantastico. Grazie mille per aver indicato il metodo slice()! – Dodinas

+0

@Dodinas ... Questo metodo clone() funziona per te in IE ...? – SpikETidE

+0

@brainpeiris sono in difficoltà con il plug-in pagination http://stackoverflow.com/questions/2505435/good-jquery-pagination-plugin-to-use-with-json-data e http://stackoverflow.com/questions/ 2523075/generate-page-numeri-con-javascript-jquery –