Heim >php教程 >php手册 >yii2中如何使用modal弹窗之基本使用

yii2中如何使用modal弹窗之基本使用

WBOY
WBOYOriginal
2016-06-06 09:32:371144Durchsuche

作者:白狼 出处:http://www.manks.top/yii2_modal_baseuse.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Modal也即是模态窗,通俗的说就是弹窗。是一款bootstrap的js插件,使用效果也是非常好。

为什么要使用modal就不必多说了,一个网站,在开发过程中你说你没用过js弹窗我都不信!好的弹窗不仅仅给人以美感,也会让我们开发效率提高,甚至心情也会舒畅!

我们看看在yii2中如何使用modal。

比如我们之前添加数据的时候,通常情况下会点击按钮跳转到添加页面,保存后再跳转到列表页。

现在我们希望点击添加按钮的时候,在当前页面弹窗添加数据,看具体实现。

1、use yii\bootstrap\Modal;
2、创建一个按钮,用于调modal的显示
<span style="color: #0000ff;">echo</span> Html::a('创建', '#',<span style="color: #000000;"> [
    </span>'id' => 'create',
    'data-toggle' => 'modal',
    'data-target' => '#create-modal',
    'class' => 'btn btn-success',<span style="color: #000000;">
]);</span>

 

3、创建modal
<span style="color: #000000;">php 
Modal</span>::<span style="color: #000000;">begin([
    </span>'id' => 'create-modal',
    'header' => '<h4 class="modal-title">创建</h4>',
    'footer' => '<a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>',<span style="color: #000000;">
]); 
</span><span style="color: #800080;">$requestUrl</span> = Url::toRoute('create'<span style="color: #000000;">);
</span><span style="color: #800080;">$js</span> = JS
    $.get('{$requestUrl}', {},
        <span style="color: #0000ff;">function</span><span style="color: #000000;"> (data) {
            $(</span>'.modal-body').<span style="color: #000000;">html(data);
        }  
    );
JS;
</span><span style="color: #800080;">$this</span>->registerJs(<span style="color: #800080;">$js</span><span style="color: #000000;">);
Modal</span>::<span style="color: #008080;">end</span><span style="color: #000000;">(); 
</span>?>

 

4、修改我们的create操作如下
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> actionCreate()
{
    </span><span style="color: #800080;">$model</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Test();
    </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$model</span>->load(Yii::<span style="color: #800080;">$app</span>->request->post()) && <span style="color: #800080;">$model</span>-><span style="color: #000000;">save()) {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->redirect(['index'<span style="color: #000000;">]);
    } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->renderAjax('create',<span style="color: #000000;"> [
            </span>'model' => <span style="color: #800080;">$model</span>,<span style="color: #000000;">
        ]);
    }
}</span>

 

这个时候我们点击按钮[创建],会看到modal弹窗。

有同学可能要说,这个页面没必要异步加载过来。确实,你也可以直接在页面上echo $this->renderAjax();,不过需要提醒的是,该操作记得修改表单提交的action哦。

关于modal的使用,此处有两点需要提醒大家:

  1. 在控制元素(比如按钮或者链接)上设置属性 data-toggle="modal",
  2. 同时设置 data-target="#identifier" 或 href="#identifier" 来指定要切换的特定的模态框(带有 id="identifier")

以上,我们在yii2中实现了modal的基本使用。我们还讲述了在yii2中有关modal结gridview的使用,推荐你看一看。

[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]

继续阅读

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn