实施的提示信息

问题描述:

这是我的控制器我的功能:实施的提示信息

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?有人能给我一个例子吗?或者是演示的链接? 谢谢。

+0

之前,您有您使用的引导为您的前端视图来包装静态内容flashmessage像

Masiorama
+0

输出如果是的话让我知道这样我就可以分享我的答案 – chapskev

这是一个基于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"; 
       } 
      } 
     } 
    }