i would like to pop up a modal when i click on a button inside grid view. is this possible with yii2 gridview?
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'time_zone',
'no_of_users',
'bill_name',
'bill_address',
'names.name',
'bill_state',
'bill_city',
'bill_postal',
'bill_mobile',
['header'=>'Plan Info',
'value'=> function($data)
{
//~ print_r($data);die();
return Html::a(Yii::t('app', ' {modelClass}', [
'modelClass' => 'details',
]), ['userdetails/plans','id'=>$data->id], ['class' => 'btn btn-success ']
);
},
'format' => 'raw'
],
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
in the above grid view i want a modal to popup when i click on the button 'details'.
thanks,
Yes, it is possible. to achieve this follow below steps.
Add Modal
code above GridView
code.
<?php
yii\bootstrap\Modal::begin(['id' =>'modal']);
yii\bootstrap\Modal::end();
?>
After that add id
in your details button.
Like as,
[
'header'=>'Plan Info',
'value'=> function($data)
{
return Html::a(Yii::t('app', ' {modelClass}', [
'modelClass' => 'details',
]), ['userdetails/plans','id'=>$data->id], ['class' => 'btn btn-success', 'id' => 'popupModal']);
},
'format' => 'raw'
],
And than register JavaScript at top or bottom of view page.
$this->registerJs("$(function() {
$('#popupModal').click(function(e) {
e.preventDefault();
$('#modal').modal('show').find('.modal-content')
.load($(this).attr('href'));
});
});");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With