2012-02-04 11 views
4

Webページのサイドバーをcodeigniterで処理する機能があります。Codeigniter表示とエコー

次のように:

function process_sidebar() 
{ 
$this->load->view("first_access"); // ------------(1) 
$this->load->view("second_access");// --------------(2) 
echo "Here i want to show some data after loading view second_access"; //pls note here --(3) 

$this->load->view("third_access"); // --------------------(4) 
$this->load->view("fourth_access"); //-------------------------(5) 

} 

注文番号を確認するが、問題はCodeIgniterの秩序を維持されていませんしてください。

それが最後のビューをレンダリングし、最初のecho一部を示す。..

どのように私はこれを克服することができますか?

ありがとうございます。

+3

とき 'echo' /' print'、ブラウザが実際に見るものである出力バッファに直接その出力を送っています(赤い光の上に並ぶ車のようにそれを考える)。 CodeIgniterビューでは、そのコンテンツを保存して後で構造内に出力するようにCIに指示します。これは駐車場に車を駐車するのと同じように、どの車が最初に行くかを決めてから、注文を確定した後にのみ車に送ります。あなたが探していないときに車に巻き込まれたくないように、あなたはそれが「順不同」なので、そのような「エコー」/「印刷」したくないでしょう。 –

+0

@ Jaredありがとう、すごい説明だった。 – Red

答えて

10

あなたはappend_output()ではなくechoしたいと思う:

<?php 
function process_sidebar() 
{ 
    $this->load->view("first_access"); // ------------(1) 
    $this->load->view("second_access");// --------------(2) 
    $this->output->append_output("Here i want to show some data after loading view second_access"); //pls note here --(3) 
    $this->load->view("third_access"); // --------------------(4) 
    $this->load->view("fourth_access"); //-------------------------(5) 
} 
0

これはCodeIgniterでのviewの動作です。すぐに表示されるのではなく、代わりにバッファリングされ、後で一緒に表示されます。克服するために、間に表示するテキストが静的である場合は、それを2番目または3番目のビューの一部にします。それ以外の場合は、2番目または3番目のビューの変数にして、テキストをビュー変数として渡します。

+0

私はそれを実現しました。しかし、私は 'echo $ this-> load-> view(" myview "、" "、TRUE);のようなことをすることはできますか? – Red

+0

はい、これは別の方法です。 AFAIKは、php.iniのoutput_buffering設定に依存します。 – LeleDumbo

関連する問題