我是yii的新手。我正在尝试使用一个下拉列表值创建两个依赖的下拉列表。这里如果我点击region_id下拉列表,它应该同时更新cityname和cityname1下拉列表。我不知道如何为多个ajax调用编写代码。下面我粘贴了我尝试过的代码。
<?php
echo CHtml::dropDownList('region_id','',
array(2=>'New England',1=>'Middle Atlantic',3=>'East North Central'),
array(
'prompt'=>'Select Region',
'ajax' => array(
'type'=>'POST',
'url'=>Yii::app()->createUrl('site/loadcities'),
'data'=>array('region_id'=>'js:this.value'),
'success'=>'function(html)
{
jQuery("#city_name").html(html)
}' ,
array(
'type'=>'POST',
'url'=>Yii::app()->createUrl('site/loadcities1'),
'data'=>array('region_id'=>'js:this.value'),
'success'=>'function(html)
{
jQuery("#city_name1").html(html)
}' )
)));
echo CHtml::dropDownList('city_name','', array(), array('prompt'=>'Select City'));
echo CHtml::dropDownList('city_name1','', array(), array('prompt'=>'Select City'));
?>
提前致谢
答案 0 :(得分:0)
您必须自己编写其他ajax请求。事实上,我更喜欢将JS逻辑与视图文件分开存储,如果它是实用的(不仅仅是几行代码)。
echo CHtml::dropDownList('region_id','',
array(2=>'New England',1=>'Middle Atlantic',3=>'East North Central'),
array(
'prompt'=>'Select Region',
'ajax' => array(
'type'=>'POST',
'url'=>Yii::app()->createUrl('site/loadcities'),
'data'=>array('region_id'=>'js:this.value'),
'success'=>'function(html)
{
jQuery(\'#city_name\').html(html)
}' ,
)));
echo CHtml::dropDownList('city_name','', array(), array('prompt'=>'Select City'));
echo CHtml::dropDownList('city_name1','', array(), array('prompt'=>'Select City'));
Yii::app()->clientScript->registerScript('regionChange', '
jQuery("#region_id").change(function(){
jQuery.ajax({
url: "' . Yii::app()->createUrl('site/loadcities1') . '",
type: "POST",
data: {region_id: this.value},
success: function(html) {
jQuery("#city_name1").html(html);
}
});
});
');