0

我有一个基于模型的活动表单,_create.phpHost有一个基于模型的下拉列表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,
        ]);
}
4

1 回答 1

0

尝试这个:

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

<div>
    <?= 
        Gridview::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'columns' => 
            [
                'name' => [
                    'label' => 'Services',
                    'attribute' => 'name',
                ]
            ]
        ]);
    ?> 
</div>
于 2015-12-28T07:06:14.913 回答