我有一个基于模型的活动表单,_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 (不确定如何在此处将索引作为参数传递给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,
]);
}