sem-soft/yii2-ajax-confirm

带有AJAX请求确认显示的提交按钮小部件

1.0 2018-11-23 12:27 UTC

This package is auto-updated.

Last update: 2024-09-24 04:15:08 UTC


README

使用composer安装

composer require sem-soft/yii2-ajax-confirm

或者将此代码添加到composer.json文件的require部分,然后在控制台中运行composer update

"sem-soft/yii2-ajax-confirm": "~1.0"

描述

实现提交按钮小部件的服务器端确认消息逻辑或无消息逻辑。用于在服务器端需要额外的数据验证时,而不仅仅是标准的操作确认。

基本用法

视图中的配置示例

    <?php $form = ActiveForm::begin([
        'id' => 'report_import_form',
        'options' => [
            'enctype' => 'multipart/form-data'
        ],
        'enableAjaxValidation' => false,
    ]); ?>
        ...
        <?= $form->errorSummary(($model), [
            'class' => 'alert alert-error'
        ]); ?>
        ...
         <?= SubmitButtonWidget::widget([
             'form' => $form,
             'confirmRoute' => ['exists'],
             'content' => 'Загрузить',
             'options' => [
                 'class' => 'btn btn-success btn-block',
            ]
         ]);?>
    <?php ActiveForm::end(); ?>

检查操作的示例

  ...
  public function actionExists()
 {
     Yii::$app->response->format = Response::FORMAT_JSON;

     ...

     $form = new FinanceReportImportForm();

     ...

     if ($existReport = FinanceReport::findOne([
         'field1' => $form->field1,
         'field2' => $form->field2
     ])) {
         $question = "Отчет по {$existReport->field1} кварталу {$existReport->field2} отчетного года уже существует и будет перезаписан. Продолжить импорт?";
     } else {
         $question = "Выполнить импорт?";
     }

     ...

     return [
         'can' => $existReport ? false : true,
         'question' => $question
     ];
 }
...