Yii2 之modal弹窗使用实例

时间: 2017-02-22  分类: Yii2  收藏

Modal弹窗是一款bootstrap的js插件,使用方便,显示效果好。

使用效果图
效果还是很漂亮的,


使用方法:
1、在view层需要点击出现弹窗的位置创建一个按钮,用于调modal的显示,当然需要在;视图层引入类:
 

use yii\helpers\Html;
//按纽
Html::a('编辑', '#', ['id' => 'edit',
                'data-toggle'=>'modal',
                'data-target'=>'#edit-modal',
                'data-url'=>Url::toRoute(['/news-comment/edit','id'=>$model->id,'page'=>$page]),]);

2、创建modal, 在底部创建或者顶部都可以, footer参数会在弹窗右下脚显示关闭按纽,我感觉跟右上脚重复给注释了
use yii\bootstrap\Modal;
Modal::begin([
    'id' => 'edit-modal',
    'header' => '<h4 class="modal-title">编辑评论</h4>',
    //'footer' => '<a href="#" class="btn btn-primary" data-dismiss="modal">关闭</a>',
]);

3、给弹窗按钮添加js点击事件
$js = <<<JS
    $(document).on('click', '#edit', function () {
        aUrl = $(this).attr('data-url');
        $.get(aUrl, {}, function (data) { $('.modal-body').html(data); } );
    });
JS;
$this->registerJs($js);

4、修改控制器controller中操作方法如下, 注意第1步和第3步中的id=edit和#edit是对应的, 注意代码中加粗的Ajax与普通的写法不一样
    public function actionEdit($id) {
        $model = $this->findModel($id);
        if($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['index']);
        } else {
            return $this->renderAjax('edit', [
                'model' => $model,
            ]);
        }
    }

5.当然需要创建edit视图文件,不然不能调用到数据
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
?>
<div class="modal_pa">
    <?php $form = ActiveForm::begin(); ?>
        <?= $form->field($model, 'comment')->textArea(['style'=>'height:150px'])->label(''); ?>
        <div class="form-group">
            <?= Html::submitButton('修改', ['class' => 'btn btn-primary']) ?>
        </div>
    <?php ActiveForm::end(); ?>
</div>

到这里就能显示最上面的效果了, 跟普通的编辑内容是一样的
分享到:

评论

昵 称: