Gridview行上的Yii2模态

时间:2017-11-06 17:59:44

标签: yii2

我的模态窗口仅显示在Gridview的第一行上(单击第二行或更多行会打开一个没有格式化的新页面)。

我关注此post

有人能帮助我吗?我看到在 https://stackoverflow.com/questions/42667602/yii2-gridview-modal-only-display-when-click-on-first-row

这个问题还有一个未解决的话题

我的gridview

<?php
    yii\bootstrap\Modal::begin([
      'id' =>'modal',
      //'headerOptions' => ['id' => 'modalHeader'],
      'header' => 'Tipos de situação',
    ]);
    yii\bootstrap\Modal::end();
?>

列...

    [
      'attribute' => 'status_id',
      'enableSorting' => true,
      'format' => 'raw',
      'value' => function ($model) {
              // return '<b style="color:#456789">'.$model->status->name.'</b>';
              // },
              return Html::a($model->status->name, ['/analise/status/list'], ['id' => 'popupModal']);      
      },
      'filter' => ArrayHelper::map(Status::find()->orderBy('name')->asArray()->all(), 'id', 'name'),
      'contentOptions'=>['style'=>'width: 10%;text-align:center;vertical-align: middle;'],
      'headerOptions'=>['class'=>'active', 'style'=>'text-align:center;vertical-align: middle;'],
    ],

    <?php
$this->registerJs("$(function() {
   $('#popupModal').click(function(e) {
     e.preventDefault();
     $('#modal').modal('show').find('.modal-body')
     .load($(this).attr('href'));
   });
});");
?>

1 个答案:

答案 0 :(得分:3)

您有多个具有相同ID“popupModal”的链接,这是不对的。您可以使用css类而不是id:

列中的

'value' => function ($model) {
    return Html::a($model->status->name, ['/analise/status/list'], ['class' => 'popupModal']);
},

在js:

$this->registerJs("$(function() {
   $('.popupModal').click(function(e) {
     e.preventDefault();
     $('#modal').modal('show')
         .find('.modal-body')
         .load($(this).attr('href'));
   });
});");