2010-04-05 7 views
6

Nous utilisons jquery pour la pagination. Nous tirons des millions de dossiers de la base de données, puis la jquery fait la pagination au début. C'est un processus très lent. Quelqu'un peut-il nous conseiller d'une solution en php et jquery où nous tirons 50 enregistrements à la fois? Mercijquery pagination

+3

Quelle base de données utilisez-vous? –

+1

Quel plugin de table jQuery utilisez-vous? – webbiedave

+3

Ridicule. Des millions d'enregistrements envoyés au client? Cher g-d! –

Répondre

3

Oui, vous devez utiliser ajax au lieu de récupérer la chose, essayez ceci:

$.get("path/to/page.php", { param1: "myParam1", page: "pagenumber" }, 
    function(data){ 
    $('#datacontainer').html(data); 
}); 

Pour plus d'informations sur la fonction $.get lire ceci: http://api.jquery.com/jQuery.get/

1

J'ai utilisé jqGrid pour une application ASP.NET MVC, mais ils font une version php qui devrait être bonne à utiliser.

6

Avez-vous vraiment besoin de jquery pour la pagination? Du côté php, vous pouvez déterminer le numéro de la ligne de départ (en utilisant page_number-1 * number_of_rows_per_page), la page 1 débutera à la ligne 0, la page 2 à 50. De cette façon, vous ne saisirez que 50 lignes à la fois . JQuery peut ensuite être utilisé pour styliser la table et/ou envoyer une requête ajax au script pour récupérer les lignes spécifiques.

$page_number = $_GET['page']; //Could POST this if u want to keep your urls tidy 
$num_rows_per_page = 50; 
$start_row = ($page_number -1) * $num_rows_per_page; 

//This will get just the specified number of rows 
$sql = "SELECT * from mytable LIMIT $start_row, $num_rows_per_page"