wkf928592 2012-03-09 11:17:23 4481次浏览 4条回复 0 0 0
class dialogHelper{
    public function runDialog($title, $message, $id = 0){		
    if($id == 0)
        $id = rand(1, 999999);
    Yii::app()->user->setflash($id, array('title' => $title, 'content' => $message) );
    if($flashes = Yii::app()->user->getFlashes()) {
        foreach($flashes as $key => $message) {
            if($key != 'counters') {
                $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
                    'id'=>$key,
                    'options'=>array(
                        'show' => 'blind',
                        'hide' => 'explode',
                        'modal' => 'true',
                        'title' => $message['title'],
                        'autoOpen'=>true,
                        'buttons'=>array(
                        '确定'=>'js:function(){ $(this).dialog("close");}',
                    ),
                ),
            ));
			
            printf('<span class="dialog">%s</span>', $message['content']);
			
            $this->endWidget('zii.widgets.jui.CJuiDialog');
            }
        }
    }
}
}

谁能帮我解释一下 Yii::app()->user->setflash($id, array('title' => $title, 'content' => $message) ); 这句代码含义是什么,用途是什么?看了手册说是储存一个flash,在当前和下次请求时可用。首先当前请求和下次请求什么概念?然后是 foreach($flashes as $key => $message),意思是我储存多少个flash就会弹出多少个喽?假如当前请求我储存了一个flash,下次请求再储存一个flash,那么在下次请求弹出时不是就会弹出两个弹出框?这个弹出是不是一次请求?表述也许不明,明白的解释下吧,谢谢喽~

  • 回复于 2012-03-09 11:46 举报

    setflash是创建一个渐隐形式的消息框,所谓的储存只是在当前session里面储存,
    不会重复上次的,重新调用runDialog就会重新构建

  • 回复于 2012-03-09 13:54 举报

    恩,谢谢!
    那什么叫渐隐形式的消息框?

  • 回复于 2012-03-13 10:27 举报

    就跟这个论坛发完贴出来的+5提示一样的消息框,显示几秒钟然后会消失,用jquery很容易实现这种效果

  • 回复于 2012-03-15 10:41 举报

    恩,十分谢谢哈。。。

您需要登录后才可以回复。登录 | 立即注册