[Codeigniter-users] 【質問】ビューの構成について

Back to archive index

Isamu Tanaka itana****@netma*****
2010年 4月 26日 (月) 01:07:41 JST


皆さま
初めまして田中と申します。

最近CodeIgniterを知り、早速CodeIgniter徹底入門を参考にしながら
少しずつ開発を始めました。

進めていく中で、つまずいてしまったので、
皆様の力を貸して頂きたくメールしました。

現在、以下のような画面構成を作成したいと考えています。

+------------------------+
|                        |
| +--------------------+ |
| |部品1(Parts1)       | |
| +--------------------+ |
|                        |
| +--------------------+ |
| |部品2(Parts2)       | |
| +--------------------+ |
|                        |
| +--------------------+ |
| |部品2(Parts2)       | |
| +--------------------+ |
|                        |
+------------------------+

部品1:ヘッダ
部品2:リスト(同じビューファイルを利用して違う情報のリストを並べる)

そこで、実現するために簡単なサンプルを作成しています。
同じ部品を利用する場合、設定する情報が異なるのですが、
未設定の場合はブランクを表示したいのですが、
前の部品で指定した情報が流用されて出てきました。

ブランクなどすべての情報を設定するとよいのですが、
それぞれのload->viewの戻り値は独立していると思ったいたため
できれば必要な情報のみプログラム上で設定したいのですが、
このようなことはできないのでしょうか?

以下長くなりますが、サンプルプログラムを記載させて頂きます。

■環境
XAMPP (Basis Package) version 1.7.3
  + Apache 2.2.14 (IPV6 enabled)
  + PHP 5.3.1 (PEAR, Mail_Mime, MDB2, Zend)

  + CodeIgniter 1.7.2


■コントローラ(sample.php)
<?php
class Sample extends Controller {
  function index()
  {
    $parts1_data['parts_title']="1個目のタイトルです。";
    $parts1_data['parts_comment']="ほげほげ";
    $data['parts1'] = $this->load->view('parts1', $parts1_data, TRUE);

    $parts2_data['parts_title']="2個目のタイトルです。";
    $parts2_data['parts_comment']="hogehoge";
    $data['parts2'] = $this->load->view('parts2', $parts2_data, TRUE);

    $parts3_data['parts_title']="3個目のタイトルです。";
    $data['parts3'] = $this->load->view('parts2', $parts3_data, TRUE);

    $this->load->view('sample_show', $data);
  }
}
?>

■ビュー(sample_show.php)
<?=$parts1?>
<?=$parts2?>
<?=$parts3?>


■部品1(parts1.php)
<?=$parts_title?>:parts1のタイトルです。<br>
<?=$parts_comment?>:parts1のコメントです。<br>
<hr>

■部品2(parts2.php)
<?=$parts_title?>:parts2のタイトルです。<br>
<?=$parts_comment?>:parts2のコメントです。<br>
<hr>

■実行結果
1個目のタイトルです。:parts1のタイトルです。
ほげほげ:parts1のコメントです。
--------------------------------------------------------------------------------
2個目のタイトルです。:parts2のタイトルです。
hogehoge:parts2のコメントです。
--------------------------------------------------------------------------------
3個目のタイトルです。:parts2のタイトルです。
hogehoge:parts2のコメントです。


⇒部品3のコメントに部品2のコメントが表示されてしまう。
 できれば部品3のコメント部分にはブランクが設定されてほしい

 実際の想定しているプログラムでは設定値が多くあるため
 不要な部分の初期化も含めてすべての設定をするのは避けたいのですが、
 何か回避方法はあるのでしょうか?

以上です。よろしくお願いいたします。




Codeigniter-users メーリングリストの案内
Back to archive index