我有一个thank_you.php文件,其中只包含字符串“谢谢”。格式化为成功/绿色。
我想在网站的特定区域显示此文字,但不知道如何去做。在我的主视图文件中,我添加了一行:
<?php $this->template->add_region('success'); ?>
旁边的“提交”按钮。
在我的控制器中,我有一个函数应该在调用后显示视图文件“thank_you.php”。
function greeter_thank_you() {
$this->template->write_view('success', 'thank_you.php');
}
我的模板文件中有标准的$ alert,$ content,$ main等...但是如何将此视图文件回显到另一个视图文件?还有其他方法我需要去做吗?
答案 0 :(得分:1)
您似乎正在使用Collin Williams' CI Template library。
据我所知,您无法在另一个区域内定义区域,因此最好将内部区域(您称之为success
)的值发送到main
区域。
$this->template->write();
方法将内容写入main
区域:使用thank_you
获取$this->load->view('thank_you', '', TRUE);
视图文件的内容,并将其放在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的模板库没有任何经验,但我认为这可能会有所帮助。
顺便说一句,如果你有任何问题,我全都听见了!答案 1 :(得分:0)
如果要在另一个视图文件中加载一个视图文件。
输入
$this->load->view('FolderPath/FileNameHere');
我希望它能解决你的问题。
编辑:
或者,如果您在按钮上执行某些操作后想要加载另一个视图。 您可以将按钮重定向到该控制器。 在那里你可以写上面一行。
如果它是一个锚按钮,只需添加<a class="BtnClass" href="ControllerPathHere">Submit</a>
如果您使用的是某些模板库请详细说明。
答案 2 :(得分:0)
在控制器中,您希望将视图输出缓冲到变量,并将变量传递给模板。 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
答案 3 :(得分:0)
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>