CodeIgniter-从内容视图文件在页脚视图中加载脚本
我有一个视图模块,其中包含用于上传文件的html和javascript。我希望脚本加载到页脚中(仅作为示例)。因此,基本上视图文件应该能够更改页脚或页眉的内容。我试图通过先将页面读入缓冲区,然后将内容输出到模板文件来实现这一点 我的控制器的功能如下所示-CodeIgniter-从内容视图文件在页脚视图中加载脚本,codeigniter,buffer,delay,Codeigniter,Buffer,Delay,我有一个视图模块,其中包含用于上传文件的html和javascript。我希望脚本加载到页脚中(仅作为示例)。因此,基本上视图文件应该能够更改页脚或页眉的内容。我试图通过先将页面读入缓冲区,然后将内容输出到模板文件来实现这一点 我的控制器的功能如下所示- public function test() { ob_start(); $this->load->view('content'); // uploader module ob_end_clean();
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
}
<html>
<body>
<?php echo $out1; ?>
<scripts>other javascript code and includes</script>
<?php echo $out2; ?>
</body>
</html>
我的上传模块看起来像这样-
<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(); ?>
一些用于上传的div
需要在页脚中进行上传的逻辑
模板文件如下所示-
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
}
<html>
<body>
<?php echo $out1; ?>
<scripts>other javascript code and includes</script>
<?php echo $out2; ?>
</body>
</html>
其他javascript代码,包括
但是,我无法保存缓冲区内容并将其传递回控制器($out1,$out2)。有人知道我如何实现这一点吗?其目标基本上是延迟加载javascript代码,但让javascript代码驻留在内容文件中,以便更容易编码。最好的方法是什么?我需要全局数组还是新的父控制器
谢谢 您可以在视图之间传递变量,如下所示:
<? ob_start(); ?>
<script type="text/javascript">
var foo = 66;
console.log(foo + 16);
</script>
<? $this->load->var('my_script', ob_get_clean()) ?>
var-foo=66;
console.log(foo+16);
如果在视图(或控制器)中运行上述代码^^,则缓冲区的内容将在以后加载为
$my_script
的任何视图中可用。您可以在视图之间传递变量,如下所示:
<? ob_start(); ?>
<script type="text/javascript">
var foo = 66;
console.log(foo + 16);
</script>
<? $this->load->var('my_script', ob_get_clean()) ?>
var-foo=66;
console.log(foo+16);
如果您在视图(或控制器)中运行上述代码^^,则缓冲区的内容将在以后作为
$my_script
加载的任何视图中可用,谢谢!这就是我要找的!谢谢这就是我要找的!