2012-02-22 9 views
25

私はCIで作業していましたが、私はCIのウェブサイトであなたが "メイン"ビューに送信するデータの可変部分としてビューを読み込むことができることを知ったので、サイトによると彼らが言うように... EJのページネーションなどが多く、私は、この結果は、私はサイトのトップにあるメニューのエコーが(前に私の体を開始してしまうことがあります。この別のビューにビューをロードする方法codeigniter 2.1?

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

のような何かをした)ではありませんすべてのもの)、どこにも何もないはずです。すべてのものの前に印刷されていたようです...私はこの問題について正直に考えていません。誰も同じ問題を抱えていましたか?

答えて

68

つこれを行う方法:事前に

  1. 読み込み、それ(あなたがやっているような)と「内から」他のビューに

    <?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. ロードビューを渡しますビュー:

    <?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

こんにちは、おかげでたくさん、私はこの質問に答えるつもりだったが、ユーザーのdoesntの私のポイントは私がそれを行うことができ...問題は、第三のパラメータFALSEだった、私は...感謝 – jpganz18

+0

感謝を知りませんでした。 Nullはこの状態で最も重要なパラメータです。 –

+0

ウェイ1はライブラリなしでシンプルで便利です。ありがとう。 ( 'menu'、DATA_ARRAY、TRUE) –

7

は、ヘルパーの楽しみを作成します。 ction

function loadView($view,$data = null){ 
    $CI = get_instance(); 
    return $CI->load->view($view,$data); 
} 

別のものをロードするために、あなたのビューで関数を使用し、その後、コントローラでヘルパーをロードします。

<?php 
... 
    echo loadView('secondView',$data); // $data array 
... 
?> 
関連する問題