╃巡洋艦㊣ 2011-03-03 18:06:00 10016次浏览 5条评论 2 0 0

为了很好地显示对话信息,创建像这样的视图:views/site/dialog.php

<?php
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,
                            ),
                        ));
 
            printf('<span class="dialog">%s</span>', $message['content']);
 
            $this->endWidget('zii.widgets.jui.CJuiDialog');
        }
    }
}
?>

在你的layout(views/layouts/main.php)文件中的<?php echo $content; ?>之前添加下面这行代码:

<?php $this->renderPartial('//site/dialog'); ?>

之后,一个很好的jquery ui对话框会显示你的对话信息。

除此之外,我建议一个嵌套功能:

<?php
class Dialog {
    public static function Message($title, $message, $id = 0) {
        if($id == 0)
            $id = rand(1, 999999);
        Yii::app()->user->setflash($id, array('title' => $title, 'content' => $message) );
    }
}
?>

用这种方法你可以触发你的对话,即使有HTML内容和不同的按钮在里面也如此容易:

$message = 'Hello World!';
$message .= '<br /><strong>Where do you want to go today?</strong><br />';
$message .= CHtml::Button('Home', array('submit' => array('home/admin')));
$message .= '<br />';
$message .= CHtml::Button('Far far away', array('submit' => array('far/away')));
Dialog::message('Title', $message);

或只是

Dialog::message('title', 'content');

我希望这些代码段将有助于对你。请把任何的意见、建议或错误发到thyseus@gmail.com,谢谢你。

您需要登录后才可以评论。登录 | 立即注册