0

私はこのコードを持っており、mydomain/index.php/blog で関数を呼び出すとすべてが機能しますが、コンテンツ、つまりこの場合は「インデックス」がページの上部に表示されます。CSSで定義したコンテンツ領域に表示したい。どうしたの?

<?php
    class Blog extends CI_Controller{

        public function __construct(){
            parent::__construct();
        }

        public function index(){

            $this->load->view('template/header');
            echo "index";
            $this->load->view('template/footer');
        }

    }
    ?>
4

2 に答える 2

2

CodeIgniter でブラウザーに出力を表示するには、2 つの方法があります。CI ビューを使用してデータをエコーアウトするだけです。コマンドはすぐに実行されるechoため、ページの上部に表示されます。メソッドは出力ライブラリのload->viewCI 内で実行されるため、echo ステートメントの順序どおりに実行されるわけではありません。

コンテンツ用に別のビューを作成してから、次のようにすべてのビューを呼び出します。

$data = array('content_html' => 'index');
$this->load->view('template/header');
$this->load->view('template/content', $data);
$this->load->view('template/footer');

あなたのコンテンツビューは、content_html変数を単にエコーアウトすることができます:

// views/template/content.php
echo $content_html;

または、コントローラーでコンテンツを制御することもできます (ただし、最良のアイデアではありません)。

$header = $this->load->view('template/header', array(), TRUE);
$footer = $this->load->view('template/footer', array(), TRUE);

echo $header;
echo "index";
echo $footer;

メソッドTRUEに 3 番目のパラメーターとして渡すと、ビューをブラウザーに出力する代わりに文字列として返すため、出力を制御できます。load->view

于 2013-01-03T18:06:44.230 に答える
1

コンテンツ領域にデータを表示したい場合

<?php
    class Blog extends CI_Controller{

        public function __construct(){
            parent::__construct();
        }

        public function index(){
            $data['content'] ='Your content';   
            $this->load->view('template/header');
            $this->load->view('template/content_template',$data);                
            $this->load->view('template/footer');
        }

    }
    ?>

また、コンテンツ用に別のテンプレートファイルを作成し、このコードをコンテンツファイル内に貼り付けます。

<?php
print $content; 
?>

このURLも参照して くださいhttp://ellislab.com/codeigniter/user-guide/general/views.html

于 2013-01-03T18:11:18.983 に答える