pavlinter / yii2-buttons
Yii2: 按钮
v1.0.3
2016-06-17 09:37 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-20 21:07:48 UTC
README
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一:
php composer.phar require --prefer-dist pavlinter/yii2-buttons "dev-master"
或者在您的 composer.json 文件的 require 部分添加
"pavlinter/yii2-buttons": "dev-master"
。
用法
Ajax 按钮
简单的 GET 请求
<?= \pavlinter\buttons\AjaxButton::widget([ /* 'options' => [ 'class' => 'btn btn-primary', ], 'spinnerOptions' => [ 'class' => 'ab-spinner-black', //ab-spinner-red|ab-spinner-green|ab-spinner-blue|ab-spinner-white ], */ 'id' => 'my-btn', 'label' => 'My Button', 'ajaxOptions' => [ /* 'dataType' => 'json', 'always' => 'function(jqXHR, textStatus){jQuery(".ab-show-" + abId).hide();jQuery(".ab-hide-" + abId).show();}', 'fail' => 'function(){}', 'then' => 'function(){}', */ 'url' => ['', 'id' => 5], //default current page 'done' => 'function(data){ }', ], ]);?>
简单的 POST 请求
<?= \pavlinter\buttons\AjaxButton::widget([ 'ajaxOptions' => [ 'data' => [ 'id' => 6, ], 'done' => 'function(data){}', ], ]);?>
发送表单
<?php $form = ActiveForm::begin(['id' => 'myForm']); ?> <input type="text" name="name" value="Jon"/> <input type="text" name="phone" value="4859282"/> <?= \pavlinter\buttons\AjaxButton::widget([ 'ajaxOptions' => [ 'type' => 'post', 'done' => 'function(data){}', ], ]);?> <?php ActiveForm::end(); ?>
发送表单和自定义数据
<?= \pavlinter\buttons\AjaxButton::widget([ 'ajaxOptions' => [ 'type' => 'post', 'dataType' => 'html', 'beforeSend' => 'function(jqXHR, settings){ //defined abId = id widget; var data = $("#myForm").serializeArray(); data.push({name: "id",value: abId}); settings.data = $.param(data); }', 'data' => [], 'done' => 'function(data){ }', ], ]);?>
重定向按钮
添加隐藏输入并发送表单
<?php $form = ActiveForm::begin([ 'id' => 'myTestForm', ]); ?> <?= \pavlinter\buttons\InputButton::widget([ 'label' => 'Redirect To Contact Page', 'input' => 'redirectId', 'name' => 'redirect', 'value' => \yii\helpers\Url::to(['site/contact']), 'formSelector' => $form, //form object or form selector ]);?> <?= \pavlinter\buttons\InputButton::widget([ 'options' => [], 'label' => 'Redirect To About Page', 'input' => [ 'id' => 'redirectId', 'class' => 'simpleClass', ], 'name' => 'redirect', 'value' => \yii\helpers\Url::to(['site/about']), 'formSelector' => '#myTestForm', ]);?> <?= \pavlinter\buttons\InputButton::widget([ 'label' => 'Remove Input', 'input' => 'redirectId', 'name' => 'redirect', //'value' => null, //remove redirect input and send form 'formSelector' => $form, ]);?> <?php ActiveForm::end(); ?>
控制器
public function actionIndex($id = null) { ... if (($redirect = Yii::$app->request->post('redirect'))) { return $this->redirect($redirect); } ... return $this->render('index'); }