[CodeIgniter] Bug avec la pagination

Résolu
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 - 28 sept. 2011 à 12:25
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 - 28 sept. 2011 à 15:11
Bonjour à tous,

je suis encore un débutant avec le framework CodeIgniter et je me retrouve aujourd'hui confronté au problème de la pagination.
Je souhaite en effet avoir accès à des données via un id qui nécessite une variable dans l'url ainsi que celle nécessaire à la pagination.

Voici ma fonction trucs_par_jour (ce n'est pas son vrai nom, c'est juste un exemple) placé dans mon controlleur truc qui retourne un tableau de trucs pour un jour précis.
Ces trucs proviennent de ma base de données et arrivent jusqu'à mon controlleur grâce à get_trucs_par_jour($jour) via le modèle model_trucs.

function trucs_par_jour($jour) {
$configpages['base_url'] = 'http://www.exemple.com/ci/index.php/truc/trucs_par_jour/'.$jour."/";
$configpages['total_rows'] = count($this->model_truc->get_trucs_par_jour($jour));
$configpages['per_page'] = 10;
$config['uri_segment'] = 4;

$this->pagination->initialize($configpages);
$data['trucs'] = $this->model_trucs->get_trucs_par_jour($jour, (int)$this->uri->segment(4), $configpages['per_page'] );

$this->load->view('truc_view.php', $data);
}


Et voici ma vue :
<?php foreach ($trucs as $element): ?>
    

Nom du truc : <?=$element->nom?>

Date du truc : <?=$element->date?>

    

<?php endforeach; ?>
<?php echo $this->pagination->create_links(); ?>



J'obtiens quelque chose d'étrange dans ma vue lorsque je saisi : http://www.exemple.com/ci/index.php/truc/trucs_par_jour/2011-09-28/

La numérotation de mes 32 trucs commence à 4 (soit la dernière page). Elle en affiche bien 10 par pages mais lorsque je clique sur une autre page, la page sélectionnée reste la quatrième.
De plus, les liens derrière la numérotation des pages donne :

First
<
2
3
4


Soit rien, 20, 10 puis encore 20. Bref il y a comme un bug dans la pagination.

Ce genre de situation avec une pagination erronée vous est-elle déjà arrivé ? Si oui, comment l'avez-vous résolu ?
Sinon, comment pensez-vous qu'il faudrait que je procède pour retrouver une pagination normale ?

Merci d'avance à tous !

P.S. : je n'ai pas encore retirer le index.php mais j'ai appris à le faire dans un autre projet CodeIgniter.

2 réponses

galled Messages postés 41 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 13 décembre 2012
28 sept. 2011 à 14:58
Déjà tu utilise

$configpages['per_page'] = 10; --> configpages
$config['uri_segment'] = 4; --> config?

Donc tu passe pas en paramètre le uri_segment quand tu initialise la pagination. C'est peut-être ça le problème.
3
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011
28 sept. 2011 à 15:11
Woah, alors là je suis bluffé ! J'ai cherché pendant un moment et c'était effectivement cette erreur toute bête qui bloquait la pagination.

Merci beaucoup en tout cas, tu viens de me sortir du pétrin :D
0
Rejoignez-nous