如何获取选中的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 而 name
和 email
来自不同的 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
大家好,我有一个如下所示的网格视图 我想得到选中列的 '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 而 name
和 email
来自不同的 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