2016-08-11 13 views
1

checkboxColumnを使用して、選択したすべての値/データYii2 Gridviewを取得する際に問題があります。CheckboxColumn Gridviewで選択したデータ/アイテムの行を取得する方法 - Yii2

私はこのコードを使用してグリッドのを取得することができます:

  'class' => 'yii\grid\CheckboxColumn', 
     'checkboxOptions' => function($model, $key, $index, $widget) { 
      return ['value' => $model['item_id'] ]; 
     }, 

が、私は、グリッド内のすべての値を取得する方法についていくつかの提案が必要...ここで

私のコードコードは、コントローラ/ビューを抜粋です。

コントローラ:

public function actionBulk(){ 
    $action=Yii::$app->request->post('action'); 
    $selection=(array)Yii::$app->request->post('selection'); 
    print_r($selection); 
} 

ビュー:

<?=Html::beginForm(['transjournal/bulk'],'post');?> 

<?=GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'bordered'=>true, 
    'striped'=>true, 
    'condensed'=>true, 
    'hover'=>true, 
    'export' => false, 
    'showOnEmpty' => false, 
    'panel'=>[ 
      'after'=>Html::submitButton('<i class="glyphicon glyphicon-plus"></i> Posted', ['class' => 'btn btn-success']), 
    ], 
    'columns' => [ 
    [ 
     'class' => 'yii\grid\CheckboxColumn', 
     'checkboxOptions' => function($model, $key, $index, $widget) { 
      return ['value' => $model['item_id'] ]; 
     }, 
    ], 
     'item_id', 
     'description', 
    ], 
    ]); 
?> 

<?= Html::endForm();?> 

ここでは私の添付ファイルである:

This is the GridView

enter image description here

This is the Result in the GridView (Selected Data only returns item_id)

enter image description here

どのように私はのitem_idと説明の両方を返すことができますか?

答えて

0

'checkboxOptions' =>の問題は、削除できますか?コントローラ内

<?=Html::beginForm(['controller/bulk'],'post');?> 

<?=Html::dropDownList('action','',[''=>'Mark selected as: ','c'=>'Confirmed','nc'=>'No Confirmed'],['class'=>'dropdown',])?> 

<?=Html::submitButton('Send', ['class' => 'btn btn-info',]);?> 

<?=GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'columns' => [ 
     ['class' => 'yii\grid\CheckboxColumn'], 
     ... 
    ], 
    ]); ?> 

<?= Html::endForm();?> 

:返信用

public function actionBulk(){ 
     $action=Yii::$app->request->post('action'); 
     $selection=(array)Yii::$app->request->post('selection');//typecasting 
     foreach($selection as $id){ 
     $model = Post::findOne((int)$id);//make a typecasting 
     //do your stuff 
     $model->save(); 
     // or delete 
     } 
    } 
+0

tnx @ muhammad-shahzad –

0

は基本的に、私はYiiののCheckboxColumnを使用しています:

<?php 
    namespace common\grid; 

    class CheckboxColumn extends \yii\grid\CheckboxColumn { 

     public $headerOptions = ['class' => 'text-center', 'style' => 'width: 5em']; 
     public $contentOptions = ['class' => 'text-center']; 

    } 
?> 

その後、私はここで、その上options.gridがあり、関連するJavaScriptコードを、選択した項目で操作をトリガするためのjQueryプラグインを書いて、プラスのカスタムアクションとあなたのグリッドのID /セレクタ、例えば'#grid'

var selection = []; 
    $(options.grid + ' input:checkbox[name="selection[]"]:checked').each(function() { 
     selection.push($(this).val()); 
    }); 

のでvar selectionは私のアイテムIDを持つ配列が含まれています。長さは:

selection.length 
+0

TNX。しかし、私はグリッドから選択されたIDを照会するつもりだと思う... –

関連する問題