Pass array from controller to view - Codeigniter

Raffaele Izzia picture Raffaele Izzia · Nov 14, 2012 · Viewed 29.5k times · Source

I tried to print the array in the controller, before passing it to a view and this is the output

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

I get the array from this method in my maincontroller

 public function get_annunci(){


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

I would like to pass this array to a view and then read the data. So i rewrite my method like this

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

In main view i have this

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

This is my error

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: annunci

Filename: views/tab_annunci_view.php

Line Number: 4

Answer

toxicate20 picture toxicate20 · Nov 14, 2012

This is because you have not defined $annunci and made it available to the view. You need to load it to the view first by

Controller

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

View

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