Yii二级联动下拉菜单

来源:互联网 发布:安装手机淘宝客户端 编辑:程序博客网 时间:2024/04/30 23:08


在做一个小项目,有项目,预算和采购三张表,项目包含多个预算,预算包含采购。 

在创建采购的时候就需要下拉菜单来选择项目和预算了。先选择项目,再更具项目选择预算。 所以需要耳机联动的下拉菜单。 

原来直接用CHtml就可以做出来了,在百度之前我还一直想着自己怎么写。 

看了好多博客,自己总结一下吧。 

视图里面的代码: 

<div class="row"><?php echo $form->labelEx($model,'prj_id'); ?><?php $prjs = Project::items();echo CHtml::dropDownList('Caigou[prj_id]', '',     //这里是父菜单$prjs, //父级数组 array('父级ID1'=>'父级名称1')array('name'=>'Caigou[prj_id]',    //名称'empty'=>'请选择',      //空时显示'ajax'=>array(           //选项切换时进行ajax操作'type'=>'post',    // ajax type'url'=>Yii::app()->createUrl('yusuan/Childyuan'), //路径'update'=>'#Caigou_yusuan_id',   //更新的ID,这里貌似要注意一下'data'=>array('pid'=>'js:this.value')   //获取本身的值,作为Post数据)));?><?php echo $form->error($model,'prj_id'); ?></div><div class="row"><?php echo $form->labelEx($model,'yusuan_id'); ?><?php echo CHtml::dropDownList('Caigou[yusuan_id]', '', array(), array('name'=>'', 'empty'=>'----------'));?>    //这里是子菜单<?php echo $form->error($model,'yusuan_id'); ?></div>
控制器里面的代码:也就是Post的Childyuan方法 

public function actionChildyuan(){$items = Yusuan::model()->findAll(array(             'condition' =>'prj_id=:pid',             'params' =>array( ':pid' =>(int)$_POST['pid']) ,        ));$items = CHtml::listData($items,'id','name');foreach($items as $k=>$v){echo CHtml::tag('option', array('value'=>$k), CHtml::encode($v), true);   //这里要小心}}





原创粉丝点击