2016-08-11 2 views
1

У меня возникла проблема с получением всех выбранных значений/данных Yii2 Gridview с помощью checkboxColumn.Как получить выбранные строки данных/элементов в 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']; 

    } 
?> 

тогда я написал JQuery плагин для запуска операций с выбранными элементами, плюс пользовательские действия и так далее, здесь соответствующий Javascript код, где options.grid является id/селектор для вашей сетки, например '#grid':

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

так var selection содержит массив с моим товаром идентификаторами. длина:

selection.length 
+0

Тпх для ответа. но я думаю, я собираюсь запросить выбранный ID из сетки ... –