2012-02-22 15 views
25

Ho lavorato con CI e ho visto sul sito web di CI è possibile caricare una vista come una parte variabile dei dati inviati alla vista "principale", quindi, secondo il sito (che dice un sacco di cose, e molti non sono come dicono ... EJ impaginazione e altri) che ho fatto qualcosa di similecome caricare la vista in un'altra vista codeigniter 2.1?

$data['menu'] = $this->load->view('menu'); 
$this->load->view ('home',data); 

il risultato di questo è che ho un eco del menu nella parte superiore del sito (prima inizia il mio corpo e tutto) e dove dovrebbe essere il suo nulla, come se fosse stampato prima di tutto ... Non ho idea di questo problema onestamente, qualcuno aveva già avuto lo stesso problema?

risposta

68

Due modi di fare questo:

  1. carico in anticipo (come si sta facendo) e passare all'altra vista

    <?php 
    // the "TRUE" argument tells it to return the content, rather than display it immediately 
    $data['menu'] = $this->load->view('menu', NULL, TRUE); 
    $this->load->view ('home', $data); 
    
  2. Load una vista "dall'interno" di un vista:

    <?php 
    // put this in the controller 
    $this->load->view('home'); 
    
    // put this in /application/views/home.php 
    $this->view('menu'); 
    echo 'Other home content'; 
    
+0

Ciao, grazie mille, stavo per rispondere a questa domanda, ma i miei punti di doesnt utente mi permettono di farlo ... il problema era il terzo parametro FALSE, non sapevo ... grazie grazie – jpganz18

+0

. Null è il parametro più importante in questa condizione. –

+0

Way 1 è semplice e utile senza alcuna libreria. Grazie. –

7

Creare un divertimento aiutante ID

Caricare l'helper nel controller, quindi utilizzare la funzione nella vista per caricare un altro.

<?php 
... 
    echo loadView('secondView',$data); // $data array 
... 
?> 
Problemi correlati