У меня есть активная форма под _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,
]);
}