Maaf gan nanya lagi tentang dependent dropdown list -->
Ane bikin form yang ada dependen dropdown list bsa jalan normal waktu create, tp trouble saat update
trouble nya :
jadi gini waktu create misal employee wktu ngisi kota harus isi propinsi dulu -> kemudian baru bisa pilih kotanya, ini create udah ok…
waktu di form update informasi tersebut, di bagian kota itu value nya ndak terisi, dan waktu proses simpan update jd muncul error "kota harus berupa angka"…
kalau di cek di database, semua value waktu create tersimpan dengan benar di database.
ini potongan source code model
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('EMP_ID, EMP_NAME, EMP_GENDER, EMP_BIRTH_PLACE, EMP_BIRTH_DATE','required','message'=>'{attribute} Tidak Boleh Kosong'),
array('EMP_CITY_ID, EMP_PROVINCE_ID, EMP_POSTAL_CODE, EMP_COUNTRY_ID, EMP_ID_CARD, EMP_HI_CARD, EMP_DL_CARD, EMP_PHONE, EMP_CELL, EMP_ACCOUNT, EMP_JOB_ID, EMP_DEPT_ID, EMP_OFFICE_ID', 'numerical', 'integerOnly'=>true, 'message'=>'{attribute} Harus Berupa Angka'),
array('EMP_ID', 'unique', 'on' => 'insert,update', 'message' => '{attribute}:{value} Sudah digunakan, Silahkan Gunakan nomor urut berikutnya!'),
array('EMP_NAME', 'length', 'max'=>50),
array('EMP_GENDER', 'length', 'max'=>10),
array('EMP_BIRTH_PLACE, EMP_MARRIAGE', 'length', 'max'=>20),
array('EMP_RELIGION', 'length', 'max'=>15),
array('EMP_ADDRESS', 'length', 'max'=>100),
array('EMP_NATIONALITY', 'length', 'max'=>35),
array('EMP_NOTE_REASON', 'length', 'max'=>500),
array('EMP_EMAIL, EMP_TAX', 'length', 'max'=>30),
array('EMP_STATS', 'length', 'max'=>10),
array('EMP_JOB_DESC', 'length', 'max'=>4000),
array('EMP_PHOTO', 'file', 'types'=>'jpg, gif, png', 'allowEmpty'=>true, 'on'=>'insert, update', 'safe'=>true),
array('EMP_ID_CARD_PERIOD, EMP_HI_CARD_PERIOD, EMP_DL_CARD_PERIOD, EMP_APP_DATE EMP_START_CONT, EMP_END_CONT', 'safe'),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('EMP_ID, EMP_NAME, EMP_GENDER, EMP_BIRTH_PLACE, EMP_BIRTH_DATE, EMP_MARRIAGE, EMP_RELIGION, EMP_ADDRESS, EMP_CITY_ID, EMP_PROVINCE_ID, EMP_POSTAL_CODE, EMP_COUNTRY_ID, EMP_NATIONALITY, EMP_ID_CARD, EMP_ID_CARD_PERIOD, EMP_HI_CARD, EMP_HI_CARD_PERIOD, EMP_DL_CARD, EMP_DL_CARD_PERIOD, EMP_START_CONT, EMP_APP_DATE, EMP_NOTE_REASON, EMP_PHONE, EMP_CELL, EMP_EMAIL, EMP_ACCOUNT, EMP_TAX, EMP_JOB_DESC, EMP_JOB_ID, EMP_PHOTO, EMP_DEPT_ID, EMP_OFFICE_ID, EMP_STATS, EMP_END_CONT', 'safe', 'on'=>'search'),
);
}
/**
* @return array relational rules.
*/
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'eMPCITY' => array(self::BELONGS_TO, 'CITY', 'EMP_CITY_ID'),
'eMPCOUNTRY' => array(self::BELONGS_TO, 'COUNTRY', 'EMP_COUNTRY_ID'),
'eMPDEPT' => array(self::BELONGS_TO, 'DEPARTMENT', 'EMP_DEPT_ID'),
'dEPARTMENTs' => array(self::HAS_MANY, 'DEPARTMENT', 'DEPT_MGR_ID'),
'eMPJOB' => array(self::BELONGS_TO, 'JOB', 'EMP_JOB_ID'),
'eMPOFFICE' => array(self::BELONGS_TO, 'OFFICE', 'EMP_OFFICE_ID'),
'eMPPROVINCE' => array(self::BELONGS_TO, 'PROVINCE', 'EMP_PROVINCE_ID'),
'aTTENDANCEs' => array(self::HAS_MANY, 'ATTENDANCE', 'ATT_EMP_ID'),
'sALARY' => array(self::HAS_ONE, 'SALARY', 'SAL_EMP_ID'),
'eMPHEALTTYPE' => array(self::BELONGS_TO, 'HEALTH', 'HI_ID'),
);
}
ini potongan source code controller untuk filter
public function actionFilterkota()
{
$models = CITY::model()->findAll('CITY_PROVINCE_ID=:CITY_PROVINCE_ID',
array(':CITY_PROVINCE_ID'=>(int)$_POST['EMP_PROVINCE_ID'])
);
$data=CHtml::listData($models,'CITY_ID','CITY_NAME');
echo "<option value=''>-----Pilih Kota-----</option>";
foreach($data as $value =>$CITY_NAME)
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($CITY_NAME),true);
}
ini potongan source code form
<div class="row-fluid">
<div class="span4">
<?php echo $form->dropDownListRow($model,'EMP_PROVINCE_ID', CHtml::listData(PROVINCE::model()->findAll(), 'PROVINCE_ID','PROVINCE_NAME'),array(
'prompt'=>'----- Pilih Propinsi -----',
'ajax'=>array(
'type'=>'POST',
'url'=>CController::createUrl('filterkota'),
'update'=>'#EMPLOYEE_EMP_CITY_ID',
'data'=>array('EMP_PROVINCE_ID'=>'js:this.value'),
)
)); ?>
</div>
<div class="span4">
<?php echo $form->dropDownListRow($model,'EMP_CITY_ID', array('prompt'=>'----- Pilih Kota -----')); ?>
</div>