Bonjour,
J'ai réalisé un filtre de recherche à partir duquel un utilisateur, à l'aide de menus déroulants, choisit les valeurs qu'ils souhaitent rechercher. Sans recharger la page je désire afficher les résultats dans un tableau en bas de cette page avec la fameuse pagination !
Je vous explique, dans une vue A, j'ai un filtre de recherche où l'utilisateur saisi les éléments sur lesquelles ils désirent faire sa recherche. Dans cette même vue je réalise donc un appel Ajax qui va me rediriger vers l'action 'index' de mon controller "AController" avec comme données les valeurs des filtres de recherches saisis.
Dans l'index de mon controller, j'ai un appel à la base de données d'où je récupère un grand nombre de résultats.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19var tab = new Array(); function updateResult(){ $.ajax({ type:"POST", url:"<?php echo Router::url(array('controller'=>'AController','action'=>'index'));?>", data : {dataFVariables: $("select[name='filtreVariable\\[\\]']").map(function(){return $(this).val();}).get()}, dataType: 'json', async:false, success: function(tab){ .......... // Création d'un tableau avec les données de tab retournées par index .......... }, error: function (tab) { alert('error'); } }); }
A partir de ces résultats je crée un tableau (dans le success de l'appel Ajax) mais ce dernier n'est pas paginé.. En effet si dans mon controller je fais :
Les résultats, dans mon tableau, seront bien présents dans la première page mais absents des pages suivantes, comment faire en sorte que la pagination fonctionne avec l'appel Ajax ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ............. $this->paginate($query); // On encode le tableau en json qui est retourné à l'appel Ajax echo json_encode($query);
Merci beaucoup !!
Partager