dungang/yii2-mjax

基于 Ajax 的 Yii2 Modal Bootstrap

1.0.3 2017-03-28 07:37 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:48:16 UTC


README

基于 Ajax 的 Yii2 Modal Bootstrap。解决在当前页面弹出编辑页面或者展示信息,不用跳转到其他页面。与 Pjax 不冲突。 增加状态编码 309 X-Mjax-Redirect,替换 302,达到局部跳转的效果。不影响项目已经完成的业务逻辑

jquery.mjax

模态框

安装

composer require dungang/yii2-mjax

使用

必须比较熟悉Yii2 框架

标记要绑定模态框的锚点

  • 锚点标签添加 class mjax
  • 关闭窗口是否刷新页面:data-mjax-refresh=true,如果设置了该属性,优先级最高,option 设置的 refresh
  • 设置模态框的大小,支持3种大小:
    • 默认中等窗口
    • lg 大窗口
    • sm 小窗口
<?= Html::a('<i class="fa fa-plus"></i> '.Yii::t('app', 'Create'), ['create'],
            ['class' => 'btn btn-primary mjax','data-mjax-size'=>'lg']) ?>

注意事项

  • ajax 返回的表格页面的 form 不用用 ActiveForm 默认生成的 id 编号,请手动指定具体一个唯一的编号,比如:option-form

因为发起 ajax 请求的页面的 widget 可能也是自动生成的元素的 id,则会跟表单页面的 id 重复就会被覆盖,导致 js 事件失效

$form = ActiveForm::begin([
        'id'=>'option-form'
    ]); 

配置从控制器的 layout,当时 ajax 请求的时候使用该 layout

config/web.php

$config  = [
    ....
    
    'as ajax'=>'dungang\mjax\MjaxBehavior',
    
    ...
    
 
 ]

(可选)注册模态框

注册行为之后,已经默认注册了该部件

\dungang\mjax\Modal::widget([
    'selector'=>'.mjax',  //注册对象,默认为`.mjax`
    'options'=>[
        'refresh'=>true //关闭模态框后是否刷新当前页面
    ]
])

协议

MIT 许可证 (MIT)

版权所有 (c) 2017 dungang

在此特此授予,免费且无任何限制地向任何获得本软件及其相关文档文件(“软件”)副本的人士授予在软件中处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供副本的人士行使上述权利,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他原因,源于、因涉及或与软件或软件的使用或其他处理有关。