2016-05-26 4 views
1

ホームページのすべての部分をインクルードします。たとえば、データベースからフェッチサイトのタイトルがheader.phpで動作していますが、header.phpindex.phpに含めると、コントローラでビューファイルに渡された変数が不明です。php codeigniterのインクルードファイルで動作しない変数

コントローラー:

$this->load->model('mobshop'); 
$data['title']=$this->mobshop->get_title(); 
$this->load->view('header',$data); 

ビューファイル:$this->mobshop->get_title()は文字列を返すと仮定すると

<h1> 
<?php echo $title['site_name']; ?> 
</h1> 
+0

あなたは 'var_dump($ this-> mobshop-> get_title())'できますか? –

+0

"view file"はheader.phpの上にありますか? – DFriend

+0

上記の「コントローラ」はindex.phpですか?そうでない場合、どのように/あなたはindex.phpを "含む"のですか? – DFriend

答えて

0

、あなたのビューは、単純にこのことでしょう。例えばこれに

<h1> 
<?php echo $title; ?> 
</h1> 

get_title()もし戻り、配列同等

$data['title'] = array('site name' => "My Site"); 

その後、あなたは疑問を持っている構文を使用します。

あなたの質問に

私はindex.phpの中でheader.phpのが含まれている場合、あなたが

を言うけど....

は尋ねるために私をリードし、あなたは文字通りとしてincludeステートメントを使用して意味ですか、include 'header.php';?もしそうなら、あなたは "CodeIgniter way"というビューを出力することでより良い結果を得るかもしれません。

$this->load->view('header', $data); 
$this->load->view('index'); //which is **not** a great name for a controller IMO 

この方法では、$dataのどの変数もindexに表示されます。

+0

これは動作しますが、私はタイトルを送信した後にホームページをロードしたくありません。たとえば、 "あなたのサイトのタイトルは更新されました"というメッセージが表示されます。 – Farzaneh

+0

@Farzaneh、あなたが表示するコードや問題文msgstr "php codeigniterのインクルードファイルで動作しない変数"#:。何を達成したいのか、どこで問題が発生しているのかをよりよく理解するために、質問を編集してください。 – DFriend

関連する問題