2009-10-06 5 views
8

J'espère que c'est quelque chose qui sera facile à corriger. J'ai un peu de problème à comprendre le plugin jQuery Pagination. Essentiellement, tout ce que j'essaie de faire est de charger un fichier PHP, puis de paginer les résultats. J'essaie de donner l'exemple, mais je ne cède pas les résultats que je recherche.Plugin de pagination jQuery

Voici le 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); 
     });  

Voici mon HTML (après que le PHP a été chargé):

 <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> 

Fondamentalement, je suis en train de montrer des éléments "3" par page, mais ne fonctionne pas. Je suppose que quelque part, je vais devoir créer une boucle for dans mon JS, mais je suis confus sur la façon de le faire. The documentation can be found here.

+0

Hey hommes Je mêmes problèmes que la vôtre, mais j'ai essayé de faire tous les scripts ici mais je l'ai fait à travers Espérons que cette aide à votre problème http://bit.ly/free-pagination c'est seulement script personnalisé pas plugsin mais vraiment utile –

Répondre

18

Vous n'avez même pas besoin d'utiliser une boucle for, utilisez simplement la méthode slice() de jQuery et un peu de maths.

J'ai organisé une démonstration de travail sur JS Bin: http://jsbin.com/upuwe (éditable via http://jsbin.com/upuwe/edit)

Voici le code modifié:

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, c'était génial. Merci beaucoup d'avoir signalé la méthode slice()! – Dodinas

+0

@Dodinas ... Est-ce que cette méthode clone() fonctionne pour vous dans IE ...? – SpikETidE

+0

@brainpeiris je suis aux prises avec le plugin de pagination http://stackoverflow.com/questions/2505435/good-jquery-pagination-plugin-to-use-with-json-data et http://stackoverflow.com/questions/ 2523075/generate-page-numbers-using-javascript-jquery –