实施的提示信息
问题描述:
这是我的控制器我的功能:实施的提示信息
public function actionUser(){
Yii::app()->user->setFlash('success', "Data1 saved!");
....
}
在视图如果我这样写:
<?php echo Yii::app()->user->getFlash('success'); ?>
它的工作原理,但我想某处出现上述内容,然后在几秒后自动淡出。我想这从here
<?php
Yii::app()->clientScript->registerScript(
'myHideEffect',
'$(".info").animate({opacity: 1.0}, 3000).fadeOut("slow");',
CClientScript::POS_READY
);
?>
但我不明白谁是myHideEffect
和类.info
?有人能给我一个例子吗?或者是演示的链接? 谢谢。
答
这是一个基于jQuery的问题,而不是基于yii的。然而试试这个:
<?php if(Yii::app()->user->hasFlash("success")): ?>
<div id="message">
<?php echo Yii::app()->user->getFlash('success'); ?>
</div>
<?php endif; ?>
...
<script>
$(document).ready(function() {
setTimeout(function() {
$('#message').fadeOut('slow');
}, 3000);
});
</script>
+0
嘿,我试过它我得到一个jQuery错误。意外的标记 { – Bloodhound
答
下面有两种实现的提示信息,我们可以证明使用toastr通知或正常引导提示信息执行的消息。
如果你想显示消息作为toast的通知有这行代码你的控制器的行为。
YII::app()->user->setFlash('toastr.error', 'An Error occured when saving');
如果您想使用正常的引导程序闪存消息,请改为使用。
YII::app()->user->setFlash('alert alert-danger', 'An Error occured.');
为了这个工作你必须处理你的主视图布局如下的Flash消息。最有可能的只是<?php echo $content; ?>
/** Takes care of the flashmessages **/
$flashMessages = Yii::app()->user->getFlashes();
if ($flashMessages) {
foreach ($flashMessages as $key => $message) {
$pattern = '/\s/';
$match = preg_match($pattern, $key);/* This checks the type of error message to use if the error $key is just one word then use toastr notification */
if ($match == 0) {
Yii::app()->clientScript->registerScript(
'myNotifyEffect', $key . '("' . $message . '");', CClientScript::POS_READY
);
} elseif ($match > 0) {
if ($key != 'alert alert') {
Yii::app()->clientScript->registerScript(
'myHideEffect', '$(".' . $key . '").animate({opacity: 1.0}, 5000).fadeOut("slow");', CClientScript::POS_READY
);
echo '<div class= "' . $key . ' alert-bold-border square fade in alert-dismissable">' . '<button class="close" data-dismiss="alert" type="button">×</button>' . $message . "</div>\n";
} else {
echo '<div class="' . $key . ' alert-bold-border square fade in alert-dismissable">' . '<button class="close" data-dismiss="alert" type="button">×</button>' . $message . "</div>\n";
}
}
}
}
之前,您有您使用的引导为您的前端视图来包装静态内容flashmessage像
– Masiorama输出如果是的话让我知道这样我就可以分享我的答案 – chapskev