1

ファイルをアップロードするためのhtmlとjavascriptを持つビューモジュールがあります。スクリプトをフッターにロードしたい (例として)。したがって、基本的にビューファイルはフッターまたはヘッダーの内容を変更できる必要があります。最初にページをバッファに読み込んでから、内容をテンプレート ファイルに出力することで、これを実行しようとしています。

私のコントローラーには、次のような機能があります-

public function test()
{
    ob_start();
    $this->load->view('content');  // uploader module
    ob_end_clean();
    $this->load->view('template', array($out1, $out2));  // ideally this will be output into a template file.  right now i'm just trying to echo it
}

私のアップローダーモジュールは次のようになります-

<div>some div for uploading</div>
<?php $out1 = ob_get_contents(); ?>
<?php ob_clean(); ?>

<script>
Logic for uploading that needs to go in the footer
</script>
<?php $out2 = ob_get_contents(); ?>
<?php ob_clean(); ?>

テンプレートファイルは次のようになります -

<html>
<body>
<?php echo $out1; ?>

<scripts>other javascript code and includes</script>
<?php echo $out2; ?>
</body>
</html>

ただし、バッファーの内容を保存してコントローラー ($out1、$out2) に戻すことができません。これを実装する方法を知っている人はいますか?目標は、基本的に JavaScript コードの読み込みを遅らせることですが、コーディングを容易にするために JavaScript コードをコンテンツ ファイルに常駐させます。これを行う最善の方法は何ですか?グローバル配列または新しい親コントローラーが必要ですか?

ありがとう!

4

1 に答える 1

1

次のように、ビュー間で変数を渡すことができます。

<? ob_start(); ?>
<script type="text/javascript">
  var foo = 66;
  console.log(foo + 16);
</script>
<? $this->load->var('my_script', ob_get_clean()) ?>

上記のコードをビュー (またはコントローラー) で実行すると、^^、バッファーの内容は、後で$my_script.

于 2012-07-18T00:18:45.480 に答える