3 votes

Passer un tableau du contrôleur à la vue - Codeigniter

J'ai essayé d'imprimer le tableau dans le contrôleur, avant de le passer à une vue et voici la sortie

Array ( [annunci] => Array ( [0] => stdClass Object ( [EmailDatore] => you@welcom.it [Nome] => asdasd [Cognome] => asdas [IdAnnuncio] => 9 [Titolo] => sfsdfdsfshrea [Testo] => agrefdgdagdfg [Categoria] => [Sede] => [TipoContratto] => [Add_Date] => [Drop_Date] => ) 
[1] => stdClass Object ( [EmailDatore] => you@welcom.it [Nome] => asdasd [Cognome] => asdas [IdAnnuncio] => 10 [Titolo] => fafa [Testo] => fafaerea asdasdas dafasfd [Categoria] => [Sede] => [TipoContratto] => [Add_Date] => [Drop_Date] => ) ) )

Je récupère le tableau de cette méthode dans mon contrôleur principal.

 public function get_annunci(){

    $query=$this->user_model->annunci($this->email);        
    print_r($query);        
    }

Je voudrais passer ce tableau à une vue et ensuite lire les données. J'ai donc réécrit ma méthode comme suit

public function get_annunci(){
    $query=$this->user_model->annunci($this->email);        
    $this->load->view('main_view',$query);      
}

Dans la vue principale, j'ai ceci

<div class="tab-pane active" id="annunci">
    <ul>
        <?php
        print_r($annunci);
        ?>
    </ul>
</div>

Voici mon erreur

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: annunci

Filename: views/tab_annunci_view.php

Line Number: 4

5voto

toxicate20 Points 2478

Cela est dû au fait que vous n'avez pas défini $annunci et que vous ne l'avez pas mis à la disposition de la vue. Vous devez d'abord le charger dans la vue en

Contrôleur

$data['id'] = $yourArray;
$this->load->view('your_view_file', $data);

Voir

 <?php print_r($id); ?> //prints $yourArray

3voto

public function index()
    {
        $data=$this->model->viewBlog();
        $this->load->view('blog/index',['data'=>$data]);
    }

J'espère que c'est du travail. Si vous gérez un nombre n d'enregistrements, utilisez cette méthode.

2voto

Filkor Points 450

(Changement $query à $query ['annunci'] ) OK, le $query est déjà un tableau, il suffit de changer le fichier de vue en 'tab_annunci_view'.

Donc :

public function get_annunci(){
    $query=$this->user_model->annunci($this->email);        
    $this->load->view('tab_annunci_view',$query);      
}

2voto

Rick Calder Points 6501
public function get_annunci(){
    $query['annunci']=$this->user_model->annunci($this->email);        
    $this->load->view('main_view',$query);      
}

Vous passez le tableau mais vous ne passez pas annunci comme une variable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X