在yii框架中php三级联动,Chtml中三级联动实例(Yii框架)

控制器中根据父类Id,查找到所有子类,并以listOptions的形式返回到页面:

public function actionGetChildByParent($parent_id)

{

$parentId = $parent_id;

if (!$parentId) {

return array();

}

$models = TicketCategory::model()->findAllByAttributes(array('parent_id'=>$parentId));

$listData = CHtml::listData($models, 'id', 'show_title');

$htmlOptions = array('empty'=>'请选择');

$result = Chtml::listOptions('', $listData, $htmlOptions);

echo $result;

}

视图中,用htmlOptions中的一个属性ajax完成ajax请求及处理:

(由于updata参数只能替换一个节点,所以这里把第一个select的ajax成功函数用success来处理)

<?php echo $form->labelEx($model,'cat_1_id'); ?>

<?php echo $form->dropDownList($model, 'cat_1_id', TicketCategory::getCategoryArr(0), array("id"=>"Ticket_cat_1_id",'ajax'=>array(

'type'=>'get',

'url'=>Yii::app()->createUrl('ticket/getChildByParent'),

'success'=>'function(html){$("#Ticket_cat_2_id").html(html).change();}',

'data'=>array('parent_id'=>'js:this.value'),

))); ?>

<?php echo $form->error($model,'cat_1_id'); ?><?php echo $form->labelEx($model, 'cat_2_id'); ?>

<?php echo $form->dropDownList($model, 'cat_2_id', TicketCategory::getCategoryArr($model->cat_1_id), array('onchange'=>'$("this").change()',"id"=>"Ticket_cat_2_id",'ajax'=>array(

'type'=>'get',

'url'=>Yii::app()->createUrl('ticket/getChildByParent'),

'update'=>'#Ticket_cat_3_id',

'data'=>array('parent_id'=>'js:$("#Ticket_cat_2_id").val()')

))); ?>

<?php echo CHtml::hiddenField('cat2Url',$cat2Url, array('id'=>'cat2Url')); ?>

<?php echo $form->error($model,'cat_2_id'); ?><?php echo $form->labelEx($model,'cat_3_id'); ?>

<?php echo $form->dropDownList($model, 'cat_3_id', TicketCategory::getCategoryArr($model->cat_2_id), array("id"=>"Ticket_cat_3_id")); ?>

<?php echo $form->error($model,'cat_3_id'); ?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值