关于Yii中实现dropDownList联动操作


Yii中可以采用CHtml类来实现,也可以用CActiveForm来实现。

一、用CHtml来实现。

VIEW中实现:

<?php
echo CHtml::dropDownList('country_id','', array(1=>'USA',7=>'France',3=>'Japan'),
array(
    '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 $("#country_id").val()')
)));

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中实现:

    <?php echo $form->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名称)
        ),
    )); ?> 


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

-->getCityList这个函数返回array()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值