请问下,三级联动如何弄呢? [ 新手入门 ]
在论坛上看到有二级联动,但是如何实现三级联动呢。。。 我自己根据哪个二级联动修改了个三级联动,但是有点问题。。。选择第一级的时候第二级可以出来,但是三级不能自己出来,必须要再点击二级后,三级才能出来。如何点击一级的时候,二级,三级能自动显示出来。 附代码: html:
<?php
echo CHtml::dropDownList('country_id','',
array('0'=>'请选择',1=>'USA',2=>'France',3=>'Japan'),
array(
'ajax' =>
array(
'type'=>'POST', //request type
'url'=>Yii::app()->createUrl('site/dynamiccities'),
'update'=>'#city_id', //selector to update
)
)
);
echo CHtml::dropDownList('city_id','', array('empty'=>'你想要的值'), array(
'ajax' =>
array(
'type'=>'POST', //request type
'url'=>Yii::app()->createUrl('site/dynamiccities1'),
'update'=>'#city_id1', //selector to update
)
));
echo CHtml::dropDownList('city_id1','', array("请先选择国家1"));
?>
php:
public function actionDynamiccities()
{
//$data=Location::model()->findAll('parent_id=:parent_id',
//array(':parent_id'=>(int) $_POST['country_id']));
//为测试方便没有使用数据库支持,使用数据库请参看上面注释掉的代码。
$list=array(
1=>array(
array("id"=>1,"name"=>"测试1"),
array("id"=>2,"name"=>"测试2")
),
2=>array(
array("id"=>3,"name"=>"测试3"),
array("id"=>4,"name"=>"测试4")
),
3=>array(
array("id"=>5,"name"=>"测试5"),
array("id"=>6,"name"=>"测试6")
),
);
if(isset($list[$_POST['country_id']])) {
$data=$list[$_POST['country_id']];
}else{
$data=array(
array("id"=>0, "name"=>"请先选择国家111"),
);
}
$data=CHtml::listData($data,'id','name');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}
}
public function actionDynamiccities1()
{
//$data=Location::model()->findAll('parent_id=:parent_id',
//array(':parent_id'=>(int) $_POST['country_id']));
//为测试方便没有使用数据库支持,使用数据库请参看上面注释掉的代码。
$list=array(
0=>array(),
1=>array(
array("id"=>1,"name"=>"测试测试11"),
array("id"=>2,"name"=>"测试测试12"),
array("id"=>3,"name"=>"测试测试13")
),
2=>array(
array("id"=>3,"name"=>"测试测试1测试13"),
array("id"=>4,"name"=>"测试测试1测试14")
),
3=>array(
array("id"=>5,"name"=>"测试1测试5"),
array("id"=>6,"name"=>"测试1测试6")
),
);
if(isset($list[$_POST['city_id']])) {
$data=$list[$_POST['city_id']];
} else {
$data=array(array("id"=>0, "name"=>"请先选择国家"),);
}
$data=CHtml::listData($data,'id','name');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true);
}
}
求解决。。。
共 5 条回复
-
-
lionel1022 回复于 2012-09-07 10:26 举报
呵呵,已经参考了。。。。研究了很久。。。
-
给你个例子:
function callback(data) { $("#residecity").empty(); $("#residecity").append(data); var pcid = $("#residecity").val(); $.get("/site/dynamiccity/pcid/"+pcid,function(result){ $("#residedist").empty(); $("#residedist").append(result); }); }
#residecity
这个是第二个dropdownlist的id ,#residedist
是第三个的dropdownlist的id -
http://www.yiichina.com/user/4671 猫咪兔 大哥 你误人子弟啊· ·
'success' =>'js:callback'
, 应该是这样的说 你少打了一个c··· 不过三级联动是搞定了
lionel1022
注册时间:2012-07-12
最后登录:2014-08-30
在线时长:3小时2分
最后登录:2014-08-30
在线时长:3小时2分
- 粉丝0
- 金钱145
- 威望0
- 积分175