作者:白狼 出处: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>
篇文章是针对git版本控制和工作流的总结,如果有些朋友之前还没使用过git,对git的基本概念和命令不是很熟悉,可以从以下基本教程入手: Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统虽然能够令多个团队成员一起协作开发,但有时如果中央服务器宕机的话,谁也无法在宕机期间提交更新和协同开发。甚至有时,中央服务器磁盘故障,恰巧又没有做备份或备份没及时,那就可能有丢失数据的风险。感兴趣的朋友可以过来看看
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> = <<<<span style="color: #000000;">JS
$</span>.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的使用,此处有两点需要提醒大家:
- 在控制元素(比如按钮或者链接)上设置属性 data-toggle="modal",
- 同时设置 data-target="#identifier" 或 href="#identifier" 来指定要切换的特定的模态框(带有 id="identifier")
以上,我们在yii2中实现了modal的基本使用。我们还讲述了在yii2中有关modal结gridview的使用,推荐你看一看。
[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]
继续阅读









