本文實(shí)例講述了Yii實(shí)現(xiàn)的多級(jí)聯(lián)動(dòng)下拉菜單。分享給大家供大家參考,具體如下:
1. 視圖文件
<?php echo CHtml::activeDropDownList($model,'zmg_id',MemGroup::model()->getMemGroup(),array(
'class'=>'s_ipt w_120',
'empty'=>'請(qǐng)選擇會(huì)員組',
'ajax' =>array(
'type'=>'GET',
'url'=>CController::createUrl('cmpTemplates/getMemType'),
'update'=>'#CmpTemplates_zmg_ids',
'data'=>array('mid'=>"js:this.value")
),
))?>
<?php echo $form->dropDownList($model,'zmg_ids',array(),array('class'=>'s_ipt w_120','empty'=>'選擇會(huì)員等級(jí)'))?>
2. 控制器
/**
* 獲取會(huì)員組,對(duì)應(yīng)的會(huì)員等級(jí),用于下拉菜單
*/
public function actionGetMemType($mid=0)
{
$criteria=new CDbCriteria;
$criteria->compare('zmg_id',$mid);
$memType = MemType::model()->findAll($criteria);
$name = '選擇會(huì)員等級(jí)';
echo CHtml::tag('option', array('value'=>0), $name, true);
foreach($memType as $val) {
echo CHtml::tag('option', array('value'=>$val->zmt_id),CHtml::encode($val->zmt_title),true);
}
}
3. 模型
/*
* 取會(huì)員組信息
*/
public function getMemGroup($type=null){
if($type==null){
$criteria=new CDbCriteria;
$criteria->compare('type','1');
$memGroup = MemGroup::model()->findAll($criteria);
return CHtml::listData($memGroup,'zmg_id','zmg_title');
}else{
$level = $this->getMemGroup();
if(array_key_exists($type,$level)){
return $level[$type];
}
}
}
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。