问题
这个问题与Yii2项目有关,当点击用户组名称时,该项目应显示相关的收件人列表。
目前我用gridviews和&amp ;;创建了所有数据库,模型,CRUD代。完美地工作。
但问题是,当我点击网格项时,它导航到另一个视图(默认方式),如下图所示,我想在同一视图的一部分中加载。
用户组(查看 - > index.php)
<?php Pjax::begin(); ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
//navigate to the relevent recipient list by click on the group name
'rowOptions' => function ($model, $key, $index, $grid) {
return [
'style' => "cursor: pointer",
'id' => $model['group_id'],
'onclick' => 'location.href="'.Yii::$app->urlManager->createUrl('recipient-list/recipients').'&scenario=RECIPIENTS¶ms="+(this.id);',
];
},
'columns' => [
'group_id',
'group_name',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
<?php Pjax::end(); ?>
我已在rowOptions
中提供GridView
,以便点击该记录&amp;通过URL导航到收件人列表。然后,这将从控制器&amp;根据{{1}}&amp;过滤结果渲染视图。
我想要什么
我想在点击左侧组列表时动态加载收件人列表 我试过了
group_id
但它无法正常工作。它在浏览器中作为单独的选项卡工作。iFrames
用于组列表。但问题是它无法从数据库中获取数据。当我创建一个组时,它没有显示在列表中。 (如果侧导航是静态的那么好)所以..我想知道的是,有没有办法用控制器做这个或者是否有任何Jquery代码来支持这个......
热烈欢迎任何建议或参考。
答案 0 :(得分:3)
您可以使用jQuery .load
进行此操作。
假设您的收件人列表容器div的ID为#recipient-list
,因此您只需在onclick
事件中添加以下内容:
$( "#recipient-list" ).load("YOUR_URL"); return false;
// replace YOUR_URL with the url you are generating already
// and don't forget the return false part. it't there so that link doesn't redirect
答案 1 :(得分:2)
单击该行时,单击事件 你将发出一个ajax请求来检索 第二个网格的数据(收件人列表)
成功或完成ajax请求 你将调用$ .pajax.reload来刷新 像这样的第二个网格中的数据
$.pjax.reload({container:'#recipient-list'});