2019 九月 17 , 星期二
Home / 开发语言 / PHP / Chtml中三级联动实例

Chtml中三级联动实例

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

/**
* 控制器中根据父类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;
}

2. [代码]视图中,用htmlOptions中的一个属性ajax完成ajax请求及处理:

/**
* 视图中,用htmlOptions中的一个属性ajax完成ajax请求及处理:
*(由于updata参数只能替换一个节点,所以这里把第一个select的ajax成功函数用success来处理)
*/
<td><?php echo $form->labelEx($model,’cat_1_id’); ?></td>
<td>
<?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’),
))); ?>
</td>
<td width=”120″><?php echo $form->error($model,’cat_1_id’); ?></td>
<td><?php echo $form->labelEx($model, ‘cat_2_id’); ?></td>
<td>
<?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’)); ?>
</td>
<td width=”120″><?php echo $form->error($model,’cat_2_id’); ?></td>
<td><?php echo $form->labelEx($model,’cat_3_id’); ?></td>
<td>
<?php echo $form->dropDownList($model, ‘cat_3_id’, TicketCategory::getCategoryArr($model->cat_2_id), array(“id”=>”Ticket_cat_3_id”)); ?>
</td>
<td width=”120″><?php echo $form->error($model,’cat_3_id’); ?></td>

Check Also

(工作小记)phpredis Redis::SERIALIZER_IGBINARY 自增字段

最近项目中的统计出现了问题,统 ...

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>