我在_create.php
下的活动表单基于模型Host
,其中有一个基于模型DeviceType
的下拉列表。我在activeforms下面还有一个gridview,它基于ServiceStatuses
,并且从service.php
部分呈现。每个设备类型ID都有不同的服务。如何根据下拉列表的当前值使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 (不确定如何将索引HERE作为参数传递给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 :(得分:0)
试试这个:
<?php
use yii\grid\GridView;
?>
<div>
<?=
Gridview::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' =>
[
'name' => [
'label' => 'Services',
'attribute' => 'name',
]
]
]);
?>
</div>