bootstrap modal+gridview实现弹出框效果

项目需要在gridview的表单信息中点击更新,弹出表单进行操作,不需要跳转。

1.在girdview中加入更新操作按钮用来调用modal弹窗

'buttons' => [

'update' => function ($url, $model, $key) {

return Html::a('<span class="glyphicon glyphicon-pencil"></span>', '#', [

'data-toggle' => 'modal',

'data-target' => '#update-modal',

'class' => 'data-update',

'data-id' => $key,

'title'=>'更改状态',

]);

},

],

2.gridview的头部创建modal弹窗样式

<?php

use yii\bootstrap\Modal;//模态弹出框

Modal::begin([

'id' => 'update-modal',

'header' => '<h4 class="modal-title">更改状态</h4>',

'footer' => '<a href="#" rel="external nofollow" class="btn btn-primary" data-dismiss="modal">Close</a>',

]);

Modal::end();

?>

3.gridview中ajax

<?php

$requestUpdateUrl = Url::toRoute('update');

$updateJs = <<<JS

$('.data-update').on('click', function () {

$.get('{$requestUpdateUrl}', { id: $(this).closest('tr').data('key') },

function (data) {

$('.modal-body').html(data);

}

);

});

JS;

$this->registerJs($updateJs);

?>

4.控制器update方法

public function actionUpdate($id)

{

$model = Order_packet::findOne($id);

$model->setScenario('update');//指定场景,防止时间等变量同时被更改

if ($model->load(Yii::$app->request->post()) && $model->save()) {

return $this->redirect(['index']);

} else {

return $this->renderAjax('update', [ //这里需要渲染update模版,要在view中写update

'model' => $model,

]);

}

}

以上是 bootstrap modal+gridview实现弹出框效果 的全部内容, 来源链接: utcz.com/z/336967.html

回到顶部