This turorial have the details of dynamic data insertion to dropdownlist using ajax. I added the source code below for this concept. We have two dropdownlist in form “usercategory”,”usertype”. When we change the usercategory, usercategory related usertype will show in “usertype” dropdownlist.
In view.php
<div class="row"> <?php echo $form->labelEx($model,'usercategory'); ?> <?php $categories=Yii::app()->Datacomponent->usercategory(); echo $form->dropdownlist($model, 'usercategory', $categories, array('empty'=>'Select Category ', 'ajax'=>array( 'type'=>'POST', 'url'=>CController::createUrl('default/usertype'), 'update'=>'#User_usertype', 'data'=>array('categoryid'=>'js:this.value'), ), )); ?> <?php echo $form->error($model,'usercategory'); ?> </div> <div class="row"> <?php echo $form->labelEx($model,'usertype'); ?> <?php echo form->dropDownList($model, 'usertype', array('empty'=>'Select Type')); ?> <?php echo $form->error($model,'usertype'); ?> </div>
In controller.php
<php class SiteController extends Controller { ............... ............... public function actionUsertype(){ if(isset($_POST['categoryid']) && $_POST['categoryid']!=''){ $categoryid=$_POST['categoryid']; $usertype=Usertype::model()->findAll(array( 'select'=>'usertypeid,type', 'condition'=>"usercategoryid='$categoryid'" )); $data=CHtml::listData($usertype,'usertypeid','type'); echo CHtml::tag('option',array('value' => ''), CHtml::encode('Select User Type'),true); foreach($data as $id => $value) { echo CHtml::tag('option',array('value'=>$id),CHtml::encode($value),true); } } } } ?<