Yii多个下拉列表

时间:2014-07-20 11:09:22

标签: php ajax yii

我是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'));
?>

提前致谢

1 个答案:

答案 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);
            }
        });
    });
');