pagination php et mysql avec des options
Par aurelien gerits le samedi, 16 juin 2012, 23:55 - pagination de pages - Lien permanent
Dans magix cjquery,
j'ai écris une pagination de pages PHP et MYSQL connue sous le nom de pagerData étant très simple d'utilisation mais déprécier à cause de sa limitation.
Celle-ci étant un peu limité dans des projets plus conséquent, j'ai alors entrepris d'écrire sa jumelle plus large dans la configuration, les options permettant ainsi de construire entièrement la pagination de pages pas à pas avec des options CSS, les éléments à afficher.
Nombre d'enregistrements :
[PHP] $sql1 = 'SELECT COUNT(id) as total FROM matable'; $request = $this->layer->selectOne($sql1);
Cette ligne de code effectue la requête dans votre base de donnée pour retourner le résultat du COUNT.
Il faut ensuite savoir combien on veux en afficher par page.
Voir la documentation sur la sélection unique dans une base de donnée
Construire une pagination
[PHP] $max = 10 $pagination = new magixcjquery_pager_pagination(); $pagination->pageOffset($max,$_GET['page']); $setConfig = array( 'url'=>'http://www.mydomain/mypage/', 'getPage'=> $_GET['page'], 'pageName'=>'page' ); $pagerdata = $pagination->setPagerData( $request['total'],$max,$setConfig ); $block = '<div class="pagination">'; $block .= $pagerdata; $block .= '</div>'; print $block
Construire une pagination avec des options
Les possibilités de personnalisation sont très large avec setPagerData, que ce soit dans les class CSS ou les éléments à afficher.
Je vais créer une page dans la documentation à titre officiel pour détailler les éléments de paramétrage de la fonction.
[PHP] $max = 10 $pagination = new magixcjquery_pager_pagination(); $pagination->pageOffset($max,$_GET['page']); $setConfig = array( 'url'=>'http://www.mydomain/mypage/', 'getPage'=> $_GET['page'], 'seo'=>'dash', 'pageName'=>'page', 'pageNumber'=> true, 'pageNumberLight'=>false, 'arrow'=>true, 'arrowthick'=>true ); $setArrow = array('left'=>'Précédent','right'=>'Suivant'); $css_param = array( 'class_number'=>'', 'class_arrow_left'=>'left-arrow', 'class_arrow_right'=>'right-arrow' ); $pagerdata = $pagination->setPagerData( $request['total'],$max,$setConfig,$setArrow,$css_param ); $block = '<div class="pagination">'; $block .= $pagerdata; $block .= '</div>'; print $block
Note : setPagerData est disponible depuis magixcjquery 3.7