[CodeIgniter] Bug avec la pagination (Résolu)

Fermé
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 - Modifié par Dacobah le 28/09/2011 à 15:29
Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 - 28 sept. 2011 à 15:26
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): ?>  
    <div>  
 Nom du truc : <?=$element->nom?><br />  
 Date du truc : <?=$element->date?><br />  
    </div>  
<?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 :

<a href="http://www.exemple.com/ci/index.php/truc/trucs_par_jour/2011-09-28/">First</a>  
<a href="http://www.exemple.com/ci/index.php/truc/trucs_par_jour/2011-09-28/20"><</a>  
<a href="http://www.exemple.com/ci/index.php/truc/trucs_par_jour/2011-09-28/10">2</a>  
<a href="http://www.exemple.com/ci/index.php/truc/trucs_par_jour/2011-09-28/20">3</a>  
<strong>4</strong>


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.

1 réponse

Dacobah Messages postés 260 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 28 septembre 2011 74
28 sept. 2011 à 15:26
Je viens tout juste de réaliser que c'était $configpages['uri_segment'] = 4; et non $config['uri_segment'] = 4;

Bref, ça marche maintenant :)
1