2015-12-28 4 views
0

У меня есть активная форма под _create.php, основанная на модели Host, у которой есть раскрывающийся список, основанный на модели DeviceType. У меня также есть вид сетки ниже активных форм, основанный на ServiceStatuses и PARTIALLY визуализируется от service.php. Каждый идентификатор типа устройства имеет разные сервисы. Как я могу сделать содержимое gridview динамически изменяться в зависимости от текущего значения dropdownlist? Должен ли я использовать jquery или ajax?Частичная рендеринг в yii2 activeform

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(); ?> 

wh ич вызывает функцию на мой контроллер

function actionShow($id) 
{ 
     $searchModel = new Object; 
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams, $id); 

     return $this->renderPartial('service', [ 
      'searchModel' => $searchModel, 
      'dataProvider' => $dataProvider, 
     ]); 
} 

ответ

0

Попробуйте это:

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

<div> 
    <?= 
     Gridview::widget([ 
      'dataProvider' => $dataProvider, 
      'filterModel' => $searchModel, 
      'columns' => 
      [ 
       'name' => [ 
        'label' => 'Services', 
        'attribute' => 'name', 
       ] 
      ] 
     ]); 
    ?> 
</div> 
+0

Спасибо, но я не думаю, что это работает для выбранного индекса – Gibs

Смежные вопросы