在 Codeigniter 中,如何将视图文件写入视图文件?
Posted
技术标签:
【中文标题】在 Codeigniter 中,如何将视图文件写入视图文件?【英文标题】:Within Codeigniter, how do I write a view file to a view file? 【发布时间】:2013-07-15 18:34:31 【问题描述】:我有一个thank_you.php 文件,其中只包含字符串“Thank you”。格式化为成功的/绿色。
我想在网站的特定区域显示此文本,但不知道该怎么做。在我的主视图文件中,我添加了以下行:
<?php $this->template->add_region('success'); ?>
“提交”按钮旁边。
在我的控制器中,我有一个函数,一旦被调用,它就会显示视图文件“thank_you.php”。
function greeter_thank_you()
$this->template->write_view('success', 'thank_you.php');
我的模板文件中有标准的 $alert、$content、$main 等区域,但是如何将此视图文件回显到另一个视图文件中?我还需要其他方法吗?
【问题讨论】:
你用的是什么模板库,因为它不是CI自带的。 @PrinceEnder 这个问题解决了吗?任何反馈将不胜感激。 【参考方案1】:您似乎在使用Collin Williams' CI Template library。
据我所知,您不能在另一个区域内定义一个区域,因此最好将内部区域的值(您称之为success
)发送到main
区域。
$this->template->write();
方法将内容写入main
区域:
使用$this->load->view('thank_you', '', TRUE);
获取thank_you
视图文件的内容,并将其放在write()
的第二个参数中的某处。
$this->template->write_view()
方法:
使用以下内容:
$data = array(
'foo' => 'bar',
'baz' => 'qux',
'success' => $this->load->view('thank_you', '', TRUE)
);
$this->template->write_view('main', 'main_region_view_file_here', $data/*, TRUE*/);
并在main
区域的视图文件中添加以下内容:
if (! empty($success))
echo $success;
我对 Collin Williams 的模板库没有任何经验,但我认为这可能会奏效。
顺便说一句,如果您有任何问题,我会全力以赴!
【讨论】:
【参考方案2】:如果您想在另一个视图文件中加载一个视图文件。
只需输入
$this->load->view('FolderPath/FileNameHere');
希望它能解决你的问题。
编辑:
或者,如果您在对 Button 执行某些操作后想要加载另一个视图。 您可以将按钮重定向到该控制器。 在那里你可以写上面的行。
如果是锚按钮就放<a class="BtnClass" href="ControllerPathHere">Submit</a>
如果您正在使用一些模板库,请详细说明。
【讨论】:
我不想显得粗鲁,但您没有阅读并理解我的问题。how do I echo this view file onto another view file? Is there some other way I need to go about it?
我在上面发布的内容应该可以正常工作,它会在另一个视图中加载一个视图,我每次都使用它,您只需使用它就可以将该视图的内容加载到页面的任何部分.但是,如果您正在使用任何 codeigniter 模板库,请告诉我们。
@SyedHaiderHassan 他正在使用模板解析器
@SyedHaiderHassan 我的帖子不仅仅是标题【参考方案3】:
在控制器中,您希望将视图输出缓冲到变量,并将变量传递给模板。 view 方法中的第三个参数允许您将视图输出作为字符串返回。
$viewData = array(
'main' => $this->load->view('thank_you.php', '', true)
);
$this->load->view('template.php', $viewData);
// access the main template data with $main in template.php
查看本页底部:http://ellislab.com/codeigniter/user-guide/general/views.html
【讨论】:
【参考方案4】:1-你可以这样传递:
function greeter_thank_you()
$data = array();
$thank_page = $this->load->view('thank_you');
$data['thank_you'] = $thank_page;
$this->load->view('main',$data);
inside your main page
<html>
<body>
<div id='thank'>
<?=$thank_you?>
</div>
<!--The rest of your codes-->
</body>
</html>
【讨论】:
以上是关于在 Codeigniter 中,如何将视图文件写入视图文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将codeigniter视图文件gmap存储到redis以使视图显示更快?