关于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