lav45 / yii2-ajax-create
此小部件旨在在填写表单时快速创建缺失的相关实体。
0.2.0.1
2019-11-13 13:53 UTC
Requires
- bower-asset/jquery-form: 4.*
- yiisoft/yii2: 2.0.*
- yiisoft/yii2-bootstrap4: 2.0.*
Requires (Dev)
- roave/security-advisories: dev-master
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', ]); // ...