2017 © Pedro Peláez
 

yii2-extension yii2-modalajax

A wrapper around Yii2 Bootstrap Modal for using an ActiveForm via AJAX inside

image

buihoangvu/yii2-modalajax

A wrapper around Yii2 Bootstrap Modal for using an ActiveForm via AJAX inside

  • Wednesday, March 8, 2017
  • by buihoangvu
  • Repository
  • 1 Watchers
  • 0 Stars
  • 5 Installations
  • JavaScript
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

yii2-modal-ajax

A wrapper around Yii2 Bootstrap Modal for using an ActiveForm via AJAX inside., (*1)

Installation

The preferred way to install this extension is through composer., (*2)

Either run, (*3)

$ php composer.phar require --prefer-dist karnbrockgmbh/yii2-modal-ajax "@dev"

or add, (*4)

"karnbrockgmbh/yii2-modal-ajax": "@dev"

to the require section of your composer.json file., (*5)

Usage

Controller

Extend your basic logic with ajax render and save capabilities:, (*6)

<?php
public function actionCreate()
{
    $model = new Company();

    if ($model->load(Yii::$app->request->post())) {
        if ($model->save()) {             
            return $this->redirect(['view', 'id' => $model->id]);             
        }
    }

    return $this->render('create', [
        'model' => $model,
    ]);
}

to, (*7)

<?php
public function actionCreate()
{
    $model = new Company();

    if ($model->load(Yii::$app->request->post())) {
        if ($model->save()) {             
            if (Yii::$app->request->isAjax) {
                // JSON response is expected in case of successful save
                Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
                return ['success' => true];
            }
            return $this->redirect(['view', 'id' => $model->id]);             
        }
    }

    if (Yii::$app->request->isAjax) {
        return $this->renderAjax('create', [
            'model' => $model,
        ]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

View

<?php
use karnbrockgmbh\modal\Modal;

Modal::begin([
    'id' => 'createCompany',
    'url' => Url::to(['/partner/default/create']), // Ajax view with form to load
    'ajaxSubmit' => true, // Submit the contained form as ajax, true by default
    // ... any other yii2 bootstrap modal option you need
]);
Modal::end();

Plugin Events

On top if the basic twitter bootstrap modal events the following events are triggered, (*8)

kbModalBeforeShow

This event is triggered right before the view for the form is loaded. Additional parameters available with this event are: - xhr: XMLHttpRequest, the jQuery XML Http Request object used for this transaction. - settings: object, the jQuery ajax settings for this transaction., (*9)

$('#createCompany').on('kbModalBeforeShow', function(event, xhr, settings) {
    console.log('kbModalBeforeShow');
});

kbModalShow

This event is triggered after the view for the form is successful loaded. Additional parameters available with this event are: - data: object, the data object sent via server's response. - status: string, the jQuery AJAX success text status. - xhr: XMLHttpRequest, the jQuery XML Http Request object used for this transaction., (*10)

$('#createCompany').on('kbModalShow', function(event, data, status, xhr) {
    console.log('kbModalShow');
});

kbModalBeforeSubmit

This event is triggered right before the form is submitted. Additional parameters available with this event are: - xhr: XMLHttpRequest, the jQuery XML Http Request object used for this transaction. - settings: object, the jQuery ajax settings for this transaction., (*11)

$('#createCompany').on('kbModalBeforeSubmit', function(event, xhr, settings) {
    console.log('kbModalBeforeSubmit');
});

kbModalSubmit

This event is triggered after the form is successful submitted. Additional parameters available with this event are: - data: object, the data object sent via server's response. - status: string, the jQuery AJAX success text status. - xhr: XMLHttpRequest, the jQuery XML Http Request object used for this transaction., (*12)

$('#createCompany').on('kbModalSubmit', function(event, data, status, xhr) {
    console.log('kbModalSubmit');
    // You may call pjax reloads here
});

The Versions

08/03 2017

dev-master

9999999-dev https://github.com/karnbrockgmbh/yii2-modal-ajax

A wrapper around Yii2 Bootstrap Modal for using an ActiveForm via AJAX inside

  Sources   Download

MIT

yii2 bootstrap modal