如何获取选中的gridview列的值

How to get value of checked gridview column

大家好,我有一个如下所示的网格视图 我想得到选中列的 'user_id' 我该怎么做???

我可以轻松获取选中的列 ID,但我不知道如何在 gridview 中获取这些选中列的数据 我想通过 javascript 获取它,以便我可以将它传递给服务

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'showOnEmpty'=>true,
        'columns' => [
            ['class' => 'yii\grid\CheckboxColumn'],
            [

                'attribute' => 'event_id',
                'label' => 'Event Title',
                'value' => 'event.title'
            ],
            [
                'attribute' => 'user_id',
                'label' => 'Email',
                'value' => 'users.email',
            ],
            'user_type',
        ],
    ]);
 ?>

这是我的 javascript 获取选中列的 ID

jQuery(document).ready(function() {
btnCheck  = $("#send");
btnCheck.click(function() {
    var keys = $("#w0").yiiGridView("getSelectedRows");
  }
});

让我告诉你这个流程

首页是这样的gridview 现在用户将单击那个小用户标志,这将打开您可以在下面看到的页面

那时我想向所有选定的用户发送消息

因为在我的例子中 title 来自不同的 table 而 nameemail 来自不同的 table 所以我想要 ids of user table

为此我想要 user_id 但我得到了一些随机值 我可以在这里做什么???

我试过了,但它返回了一些随机字符串

public function search($params)
{

    if(!isset($_GET['id'])){
        $id='';
    }
    else{
        $id=$_GET['id'];
    }

    $query = Checkin::find()->where(['event_id'=> $id]);

    $query->joinWith(['event', 'users']);

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    $this->load($params);

    if (!$this->validate()) {
        return $dataProvider;
    }

    $query->andFilterWhere([
        'id' => $this->id,
        'created_date' => $this->created_date,
        'created_by' => $this->created_by,
        'updated_date' => $this->updated_date,
        'updated_by' => $this->updated_by,
    ]);

    $query->andFilterWhere(['like', 'user.email', $this->user_id]);
    $query->andFilterWhere(['like', 'user_type', $this->user_type]);

    $dataProvider->keys ='user_id';

    return $dataProvider;
}

您只需替换此代码

['class' => 'yii\grid\CheckboxColumn'],

使用以下代码

[
    'class' => 'yii\grid\CheckboxColumn',
    'checkboxOptions' => function($data) {
        return ['value' => $data->user_id];
    },
],

更新您的 DataProvider 集 $dataProvider->keys ='userId' 然后您将能够获得 user_id

的所有键

data-id 的 GridView 并获取 allSelectedColumns