lav45/yii2-ajax-create

此小部件旨在在填写表单时快速创建缺失的相关实体。

安装次数: 5,394

依赖项: 1

建议者: 0

安全性: 0

星标: 5

关注者: 4

分支: 6

类型:yii2-extension

0.2.0.1 2019-11-13 13:53 UTC

This package is auto-updated.

Last update: 2024-08-28 20:35:57 UTC


README

此扩展旨在在模态窗口中显示表单。

安装

推荐通过扩展 composer 安装。

您可以从控制台安装

~ $ composer require lav45/yii2-ajax-create

或添加

"lav45/yii2-ajax-create": "0.2.*"

composer.json 文件的 "require" 部分。

工作原理

在页面中创建一个按钮,点击后会打开一个包含表单的模态窗口。如果数据输入错误,则服务器会返回错误列表,这些错误将在模态窗口中的表单上显示。成功保存数据后,将更新 AjaxCreate 块内的内容。

使用方法

首先需要一个按钮,点击后会打开一个模态窗口。 data-href - 打开表单的链接

use lav45\widget\AjaxCreate;

AjaxCreate::begin();

echo Html::button('<span class="glyphicon glyphicon-plus"></span>', [
    'data-href' => Url::toRoute(['create']),
    'class' => 'btn btn-success',
]);

AjaxCreate::end();

控制器示例。为了在模态窗口中正确显示表单,需要使用 renderPartial() 方法显示表单。

class SiteController extends Controller
{
    public function actionCreate()
    {
        // ...
        return $this->renderAjax('create', [
            'model' => $model,
        ]);
    }
}

在表单的视图中,首先应将 ActiveForm::$autoIdPrefix 重写为任何值,因为表单将在已存在 id="w1" 元素的页面上显示在模态窗口中,这可能导致 js 代码运行出错。

// views/site/_form.php

use yii\bootstrap\ActiveForm;

ActiveForm::$autoIdPrefix = 'a';

$form = ActiveForm::begin([
    'layout' => 'horizontal',
]);
// ...