2016-04-15 3 views
0

関連モデルの行を表示するGridViewがあります。 私は関連するモデルの更新フォームにかかるすべての行にリンクを張りました。しかし、そのリンクをクリックすると、更新フォームがモーダルポップアップウィンドウに表示されます。 これは、私が私のGridViewで得たものを、私はモーダルで必要な列です:Yii2:GridViewのすべての行のリンクからのモーダル更新フォーム

<?= GridView::widget([ 
'dataProvider' => $dataProvider, 
'columns' => [ 
    [ 
     'label' => 'Spraying', 
     'format' => 'raw', 
     'value' => function ($model, $key, $index) { 
      return Html::a($model->numero_spraying, ['spraying/'.'update', 'id' => $model->id_spraying]); 
     }, 
    ], 

これが今どのように見えるかです: GridView

答えて

0

これはあなたの条件

<?php 
    yii\bootstrap\Modal::begin([ 
    'headerOptions' => ['id' => 'modalHeader'], 
    'id' => 'modal', 
    'size' => 'modal-lg', 
    'clientOptions' => ['backdrop' => 'static', 'keyboard' => FALSE] 
    ]); 
?> 
    <div id='modalContent'></div>; 
<?php yii\bootstrap\Modal::end();?> 
のための基本的な構造を提供

上記のコードは、ブートストラップモデルのウィジェットを作成します

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'id'=>'need-model', 
    'columns' => [ 
     [ 
      'label' => 'Spraying', 
      'format' => 'raw', 
      'value' => function ($model, $key, $index) { 
       return Html::a($model->numero_spraying, ['spraying/'.'update'], 
       ,['class'=>"update-dialog","data-form-id"=>$model->id_spraying] 
       ); 
      }, 
     ], 

    ], 
]); ?> 
01それはあまりにも多くを求めていない場合

上記のコードは、私はすべての

<?php 


$this->registerJs('$("#modal").delegate(".update-dialog","click",function(event){ \ 
    id = $(this)->attr("data-form-id"); 
    //load ajax and show model \ 
    $.post("'.Url::toRoute("your/action").'", {id:id}, function(data) {\ 
     $("#modal").find("#modalContent").html(data).modal("show");\ 
    });\ 
});');?> 
+0

をクリックしdeligatedているすべてのリンク.hereのクラスを登録しますが、あなたにMidhunありがとう、あなたは負荷AJAXやショーモデルの一部にしてください手の込んだだろうか? 。私はYiiでajaxを使ったことがないので、私はその部分で迷っています。 –

+0

これは役に立ちます – Midhun

+0

ありがとう@Midhun、私は、値関数の後、GridViewの列タグ内のregisterJsコードを入れている正しいですか?よろしく。 –

関連する問題