Yii2 . FORM How to make dependant drop down. Where second drop downs values are dependant on first drop down selection

In form file :

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?= $form->field($model, 'country_id')->dropDownList(["5"=>'USA', "6"=>"Pakistan"],
['prompt'=>'Select Country',
'onchange'=>'
$.get( "'.yiihelpersUrl::toRoute('/site/getstates').'", { id: $(this).val() } )
.done(function( data ) {
$( "#'.Html::getInputId($model, 'state_id').'" ).html( data );
}
);
','class' => 'form-control'
]
); ?>
<?= $form->field($model, 'state_id')
->dropDownList(
[
'prompt'=>'Select State',
]
);
?>

In siteController.php file add a function like below:

public function actionGetstates($id){
$states = StateProvince::find()->where(
[
'country_id'=>$id
]
)->all();

$returnStr = "";
foreach ($states as $state){
$returnStr.="<option value='{$state->state_id}'>{$state->name}</option>";
}

return $returnStr;
}

Leave a comment

Your email address will not be published. Required fields are marked *