Частичный рендеринг в yii2 activeform

У меня активная форма под _create.php на основании модели Host который имеет выпадающий список на основе модели DeviceType, У меня также есть сетка под активными формами, которая основана на ServiceStatuses и это ЧАСТИЧНО предоставлено из service.php, Каждый идентификатор типа устройства имеет разные службы. Как я могу сделать так, чтобы содержимое gridview динамически изменялось в зависимости от текущего значения выпадающего списка? Должен ли я использовать JQuery или AJAX?

SQL-оператор, который я планирую использовать, SELECT id, name from ServiceStatuses where id = *current drop down index*

Вот таблицы:

//Host Machine
id, name, devicetype_id
1  HostA  1
2  HostB  1
3  HostC  2
4  HostD  2

//DeviceType
id, name
1  DeviceA
2  DeviceB

//ServiceStatuses
id, name, host_id
1  ServiceA 1
2  ServiceB 1
3  ServiceC 2
4  ServiceD 2
5  ServiceE 3
6  ServiceF 3
7  ServiceG 4
8  ServiceH 4

_form.php (НЕ УВЕРЕН, как передать индекс ЗДЕСЬ в качестве параметра service действие)

<?php $form = ActiveForm::begin(); ?>

<?= $form->field($model, 'device_type')->dropDownList($deviceTypeModel, [
'onchange' => 'show($id)']
);
?>

<?php ActiveForm::end(); ?>

который вызывает функцию на моем контроллере

function actionShow($id)
{
$searchModel = new Object;
$dataProvider = $searchModel->search(Yii::$app->request->queryParams, $id);

return $this->renderPartial('service', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}

0

Решение

Попробуй это:

<?php
use yii\grid\GridView;
?>

<div>
<?=
Gridview::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' =>
[
'name' => [
'label' => 'Services',
'attribute' => 'name',
]
]
]);
?>
</div>
0

Другие решения

Других решений пока нет …