您当前的位置:首页 > 分类 > 技术资讯 > YII > 正文

关于Yii中实现dropDownList联动操作

发布时间:2014-12-24 16:43:50      来源:51推一把
【摘要】关于Yii中实现dropDownList联动操作,Yii中可以采用CHtml类来实现,也可以用CActiveForm来实现。
Yii中可以采用CHtml类来实现,也可以用CActiveForm来实现。

一、用CHtml来实现。

VIEW中实现:

echo CHtml::dropDownList(country_id,, array(1=>USA,7=>France,3=>Japan),
array(
   prompt=>请选择,
    ajax => array(
    type=>POST, //request type
    url=>Yii::app()->createUrl(project/dynamiccities),
    update=>#city_id, 
    data=>array(Yii::app()->request->csrfTokenName=>Yii::app()->request->getCsrfToken(),country_id=>js:this.value)  //获取本身的值,作为Post数据
)));

echo CHtml::dropDownList(city_id,, array());

?>

controller中实现:

    public function actionDynamiccities()
    {
        $data=Parts::model()->findAll(prent_id=:prent_id,
                      array(:prent_id=>(int) $_POST[country_id]));
    
        $data=CHtml::listData($data,id,name);
        foreach($data as $value=>$name)
        {
            echo CHtml::tag(option,
                       array(value=>$value),CHtml::encode($name),true);
        }
    }

二、用CActiveForm来实现

在VIEW中实现:
    dropDownList($model,province_id,$provinceList(这个值可以通过render传递到页面),array(

        empty=>-请选择-,
        ajax=>array(
            //指定请求地址
            url=>Yii::app()->createUrl(site/dynamicCity),
            //请求数据
            data=>array(pid=>js:this.value),
            //操作元素
            update=>#SosInfo_city_id,(注意这个update的值很容易弄错,它由两部分组成:模型+ID,模型->是指本CActiveForm所承载的model名称)
        ),
    )); ?>

  dropDownList($model,city_id,City::model()->getCityList($model->province_id),array(empty=>-请选择-)); ?>

 -->getCityList这个函数返回array