У меня активная форма под _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,
]);
}
Попробуй это:
<?php
use yii\grid\GridView;
?>
<div>
<?=
Gridview::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' =>
[
'name' => [
'label' => 'Services',
'attribute' => 'name',
]
]
]);
?>
</div>
Других решений пока нет …