我认为您可能对视图的工作方式有些困惑。加载器只是在您的views/
目录中包含一个与您提供的名称相对应的文件,并且(可选)解包一个数组,以便您可以访问视图中的视图数据。每个调用(默认情况下)只是将视图中已解析的任何内容放入输出缓冲区。
对于通知,最好只在传递给加载器的数组中设置错误消息,然后在页面中包含/检查它。使用一些 JS 允许用户关闭通知或在一段时间后将其隐藏。
例如(控制器):
$pageData['error'] = 'The database server was eaten by an elephant';
$this->load->view('example', $pageData);
那么,在你看来:
<?php
if (isset($error)):
?>
<div id="error"><?php echo $error;?></div>
<?php
endif;
?>
然后,您只需要一个小 JS 让用户关闭错误 div(隐藏或删除它),或者一个链接来再次尝试请求,或者在错误的上下文中任何有意义的东西。一个小小的 jQuery 就很容易做到这一点:
<?php
if (isset($error)):
?>
$(document).ready(function() {
$('.dismiss', '#error').click(function() {
$('#error').fadeOut('fast', function() {
// any additional dom fiddling that needs done once it vanishes
})
})
})
<?php
endif;
?>
这是一个粗略的例子,当然你不敢加载 jQuery 只是为了隐藏一个 div :) 但你明白了。只需在错误中添加一个带有“dismiss”类属性的链接。如您所见,如果没有错误可言,则无需包含 JS。
或者,您可以包含一些额外的 JS 以在页面加载时触发事件,但这似乎有点奇怪。