如何获取已检查gridview列的值

时间:2015-09-30 04:46:45

标签: javascript gridview yii2 yii2-advanced-app

大家好我有一个如下的网格视图 我想获得已检查列的'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");
  }
});

让我告诉你这个

的流程

在主页上是这样的网格视图 enter image description here 现在,用户将点击该小用户标志,这将打开您可以在下面看到的页面

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

enter image description here 因为在我的情况下,title来自不同的表格,而nameemail来自不同的表格,所以我希望ids user

为此我想要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;
}

2 个答案:

答案 0 :(得分:2)

更新您的DataProvider集$dataProvider->keys ='userId',然后您就可以获得user_id的所有密钥

data-id GridView并获取allSelectedColumns

答案 1 :(得分:0)

您只需要替换此代码

attributedTitle

以下代码

NLS_DATE_FORMAT