Я работаю над проектом в Yii2, требование состоит в том, что когда пользователь щелкает строку в gridview, он должен открыть новый контроллер, называемый регистрацией, и отобразить всех зарегистрированных пользователей для этой конкретной строки.
Я запутался, лучше использовать actioncolumn
и создать новую кнопку или использовать rowopions
В любом случае, когда я использую rowoptions
вот так
[
'class' => 'yii\grid\ActionColumn',
'template' => '{index} {view} {update} {delete} ',
'buttons' => [
'index' => function ($url,$model) {
return Html::a('<span class="glyphicon glyphicon-user"></span>', $url);
},
]
],
Когда я использую этот код с javascript
<?php
$this->registerJs("
$('tbody td').css('cursor', 'pointer');
$('tbody td').click(function (e) {
var id = $(this).closest('tr').data('id');
if (e.target == this)
location.href = '" . Url::to(['checkin/index' ]) . "?id=' + id;
});
");
?>
Он дает идентификатор события щелчка строки, но он не перенаправляет на страницу «checkin/index
», он обновляется в том же возрасте, а идентификатор строки прикрепляется в конце URL-адреса.
Но когда я использую этот скрипт
<?php
$this->registerJs("
$('td').click(function (e) {
var id = $(this).closest('tr').data('id');
if(e.target == this)
location.href = '" . Url::to(['checkin/index']) . "?id=' + id;
});
");
?>
Он перенаправляет на checkin/index
страницу нормально, но URL-адрес не получает id
его отображения checkin/index/id=undefined
Я хочу передать идентификатор контроллеру checkinSearch
и отображать только данные выбранной строки для использования.