CodeigniterでViewページに含めるにはControllerから関数を呼び出す方法は?

I want to call function from Controller to include into the View page with Codeigniter. Usually when I open any page, I call $this->load->view() in Controller for open that page. Now I want to include sub page into main page, but it can't include any function in View. I try to include function like this.

<body><? include(site_url().'/login'); ?></body>

<body><? include('/login'); ?></body>

<body><? include('./login'); ?></body>

私は、 http://localhost/ci_house/index.php/login というリンクを使ってページを開くことができます。私のコードを実行するためにメインページを開くと、これらのエラーが表示されます。

A PHP Error was encountered

Severity: Warning

Message: include(http://localhost/ci_house/index.php/login) [function.include]: failed to open stream: no suitable wrapper could be found

Filename: views/main.php

Line Number: 8
A PHP Error was encountered

Severity: Warning

Message: include() [function.include]: Failed opening 'http://localhost/ci_house/index.php/login' for inclusion (include_path='.;C:\php5\pear')

Filename: views/main.php

Line Number: 8

1ページに2つのビューを表示したい。

function test1()
{ $data['var_for_login_view'] = 'get table1';
  $this->load->view('main1',$data);
}
function test2()
{ $data['var_for_login_view'] = 'get table2';
  $this->load->view('main2',$data);
}

views/main.phpで:

$this->load->view('test1');
$this->load->view('test2');` 

私は好きに見せたい

<body>
include('main1.php');
include('main2.php');
</body>

私はCodeigniterでこれを示すことができます。

0
はい、 function sh_all_post(){$ this-> load-> model( 'post_model'、 'post'); $ data ['qry_post'] = $ this-> post-> get_all_post(); $ this-> load-> view( 'sh_all_post_view'、$ data); }パブリック関数main(){$ this-> load-> view( 'main'); }これらの関数をインデックスページにのみ表示するようにしたいと思います。インデックスページを開くと、インデックスページのこれらの機能からページを表示する必要があります。
追加された 著者 user572575,
ビューから別のビューを追加しますか?
追加された 著者 Vikk,

3 答え

私は本当によくあなたの質問を理解することはできませんが、ねえ、あなたは問題なく、別のビュー内の任意のビューを "含める"ことができます..

main.phpで:

$this->load->view('login');

パラメターを渡す必要はありません。バッファーされているので、挿入する子ビューにも利用できます。しかし、実際に必要なものをもっと明確にしてください。

login()メソッドでロードするのと同じビューをmain()にインクルードしたい場合は、もちろん、CI URIをインクルードする必要はなく、コントローラのメソッドlogin()内で渡す必要がある変数を作成するだけです。この特定のメソッドまたは他のコントローラのメソッド用に設計されたビューであれば、必要なビューを呼び出すことができます。

だから、for.ex.

function login()
{
  $data['var_for_login_view'] = 'a variable';
  $data['var_for_this_view'] = 'another variable';
  $this->load->view('main');
}

views/main.phpで:

echo $var_for_this_view;
$this->load->view('login');
echo $var_for_login_view;

// see? $data was not passed to $this->load->view('login'), but it's still there nonetheless!
1
追加された

私が理解していることは、コントローラの1つで定義されているいくつかの関数があり、別のコントローラ/ビューからこれらの関数を呼び出せるようにしたいということです。

これが正しければ、通常これを行うことはできません。ここにはいくつかの選択肢があります:

  1. これらの関数をライブラリ/ヘルパーに移動します。ライブラリ/ヘルパーをロードして、これらの関数を呼び出すことができます。

  2. コントローラからこれらの関数を絶対に呼び出す必要がある場合は、 HMVCの内線番号を入力します。

0
追加された

You can't include using site url, use this $this->load->view('template', $data); for codeigniter.

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com