Yii2: Dropdownlist to load Editable Gridview OnChange

I want my dropdownlist on change to load Gridview on change. I have tried several means but not loading any data. I tried to make $faculty as a parameter so that the Editable Gridview will be loaded based on the faculty, thats where faculty_id (in Faculties) = academic_level_faculty_id (in AcademicLevels) but dont really know how to apply it.

I tried to use $dispStatus, but can’t go further.

This is what I have

7637

academiclevel1.PNG

This is what I want

7638

academiclevel2.PNG

Controller (AcademicLevelsController)




    public function actionSortOrder()

    {

        $FptModel = new \app\models\AcademicLevels();

		$FccModel = new \app\models\Faculties();

		$dispStatus = false;

        if(!empty($_POST['Faculties']['faculty_id'])) {

			$dispStatus = true;

			$FccModel = \app\models\Faculties::findOne($_POST['Faculties']['faculty_id']);

        }       

        $modelSearch = new AcademicLevelsSearch(); 

        $dataProvider = $modelSearch->searchlevels(Yii::$app->request->queryParams);

        

    if (Yii::$app->request->post('hasEditable')) 

    {

      $levelid = Yii::$app->request->post('editableKey');

      $level = AcademicLevels::findOne($levelid);

      $out    = Json::encode(['output'=>'', 'message'=>'']);

      $post = [];

      $posted = current($_POST['AcademicLevels']);

      $post['AcademicLevels'] = $posted;

      if($level->load($post))

      {         

          $level->updated_at = new \yii\db\Expression('NOW()');

	  $level->updated_by = Yii::$app->getid->getId();            

          $level->save();

          $output = ($level->sort_order);//'my values';

          $out = Json::encode(['output'=>'', 'message'=>'']);

      }

      echo $out;

      return;

    }

        

	return $this->render('sort-order', [

		'FptModel' => $FptModel,

		'FccModel' => $FccModel,

		'dispStatus'=> $dispStatus,

                'modelSearch' => $modelSearch,

                'dataProvider' => $dataProvider,

	]);

        

    }    



ModelSearch (AcademicLevelsSearch)




    public function searchlevels($params,$faculty=null)

    {

        $query = AcademicLevels::find()->where(['is_status' => 0])->andwhere(['=', 'academic_level_faculty_id', $faculty]);


        $dataProvider = new ActiveDataProvider([

            'query' => $query,

        ]);


        $this->load($params);


        if (!$this->validate()) {

            // uncomment the following line if you do not want to return any records when validation fails

            // $query->where('0=1');

            return $dataProvider;

        }


        $query->andFilterWhere([

            'academic_level_id' => $this->academic_level_id,

            'academic_level_faculty_id' => $this->academic_level_faculty_id,

            'academic_level_department_id' => $this->academic_level_department_id,

            'academic_level_programme_id' => $this->academic_level_programme_id,

            'is_status' => $this->is_status,

            'created_at' => $this->created_at,

            'created_by' => $this->created_by,

            'updated_at' => $this->updated_at,

            'updated_by' => $this->updated_by,

        ]);


        return $dataProvider;

    }  



Views: sort-order (




    <div class="box-body no-padding">

	<?php $form = ActiveForm::begin([

		'id' => 'sort-order-form',

		'fieldConfig' => [

			'template' => "{label}{input}{error}",

		],

	]); ?>


	<div class="col-md-12">

            

            <?= $form->field($FccModel, 'faculty_id')->widget(Select2::classname(), [

                'data' => ArrayHelper::map(app\models\Faculties::find()->where(['is_status'=>0])->all(), 'faculty_id', 'faculty_name'),

                'language' => 'en',

                'options' => ['placeholder' => '--- Select Academic Level Category ---',

                    'onchange'=>'this.form.submit()'

                    ],

                'pluginOptions' => [

                    'allowClear' => true

                ],

            ])->label('Faculty'); ?>            

	</div>

     

	<?php ActiveForm::end(); ?>

    </div>

</div>

<!---End Select Fees Collection Category--->


<?php

if($dispStatus) {

	$levelDetails = \app\models\AcademicLevels::find()->where(['academic_level_faculty_id' => $FccModel->faculty_id, 'is_status'=>0])->asArray()->all();

}

?>


<div class="col-xs-12">

  <div class="col-lg-8 col-sm-8 col-xs-12 no-padding jkklmsArLangCss"><h3 class="box-title"><i class="fa fa-edit"></i> <?php echo Yii::t('app', 'Update Academic Level: Sort Order') ?></h3></div>

  <div class="col-lg-4 col-sm-4 col-xs-12 no-padding" style="padding-top: 20px !important;">

	<div class="col-xs-4 left-padding">

	

	</div>

	<div class="col-xs-4 left-padding">

        

	</div>

	<div class="col-xs-4 left-padding">

            <?= Html::a(Yii::t('app', 'Back'), ['index'], ['class' => 'btn btn-block btn-back']) ?>

	</div>

    </div>

</div>


<!---Start display fees collection details--->

<div class="box-primary box view-item col-xs-12 col-lg-12 no-padding">

   <div class="box-header with-border">

		<h3 class="box-title"><i class="fa fa-inr"></i> <?php echo Yii::t('app', 'Academic Level Details'); ?></h3>

   </div>

   <div class="box-body table-responsive no-padding">

       <?php Pjax::begin(['id' => 'pjax-gridview']) ?>

      <?= GridView::widget([

        'dataProvider' => $dataProvider,

//        'filterModel' => $modelSearch,

        'pjax' => true,

        'export' => false,

        'responsive'=>true,

        'hover'=>true,          

        'columns' => [

            ['class' => 'yii\grid\SerialColumn'],


            'level_name',


            [

              'class' => 'kartik\grid\EditableColumn',

              'label'=>'Sort Order',

              'attribute'=>'sort_order',

              'value' =>function($model)

              {

                return 'the sort order is: '. $model->sort_order;

              },

              'pageSummary' => true,

              'readonly' => false,

              'editableOptions'=> [

                'asPopover' => true,

                'format' => Editable::FORMAT_BUTTON,

                'inputType' => Editable::INPUT_TEXT,

                'options' => ['class'=>'form-control', 'prompt'=>'Select Sort Order...'],

              ]

            ],


		    [

			      'label' => Yii::t('app','Faculty'),

			      'attribute' => 'academic_level_faculty_id',

			      'value' => 'levelFaculty.faculty_name',

			      'filter' => ArrayHelper::map(app\models\Faculties::find()->all(), 'faculty_id', 'faculty_name')

		    ],

		    [

			      'label' => Yii::t('app','Department'),

			      'attribute' => 'academic_level_department_id',

			      'value' => 'levelDepartment.department_name',

			      'filter' => ArrayHelper::map(app\models\Departments::find()->all(), 'department_id', 'department_name')

		    ],

                    [

			      'label' => Yii::t('app','Programme'),

			      'attribute' => 'academic_level_programme_id',

			      'value' => 'levelProgramme.programme_name',

			      'filter' => ArrayHelper::map(app\modules\course\models\AcademicProgrammes::find()->all(), 'academic_programme_id', 'programme_name')

		    ],

          //  ['class' => 'yii\grid\ActionColumn'],

        ],

    ]); ?>       

       <?php Pjax::end() ?>

   </div><!---./end box-body--->