Ajax请求不会触发。 [Yii框架]

时间:2013-08-25 03:00:58

标签: php ajax yii

我对Yii中的Controller方法AJAX调用有一点问题。问题是我正在尝试根据前一个选定项的值过滤一个dropDownList的数据。

在视图文件中,我想出的是问题的根源,我有这段代码:

<?php echo $form->labelEx($model,'Estado'); ?>
<?php echo $form->dropDownList($model,'estado',CHtml::listData(Estado::model()->findAll(),'id','nombre'),array(
            'ajax'=>array(
            'type'=>'POST',
            'url'=>CController::createAbsoluteUrl('buscar/select'),
            'update'=>'#'.CHtml::activeId($model,'tbl_municipio_id'),
            ),
            'class'=>'form-control'     
        )); 
    ?>
    <?php echo $form->error($model,'Estado'); ?>

在控制器方面,我得到了这个:

public function actionSelect(){
    echo "Hello world";
    $data = Municipio::model()->findAll('tbl_estado_id=:tbl_estado_id',
            array(':tbl_estado_id'=>(int) $_POST['Consultorio_estado']));   

    $data = CHtml::listData($data,'id','name');
    foreach($data as $value=>$name)
    {
        echo CHtml::tag('option',
                array('value'=>$value),CHtml::encode($name),true);
    }   

单击dropDownList时,不会触发对Select方法的ajax调用。我使用Firebug跟踪请求,没有错误也没有失败消息。

任何人都知道我该怎么做?。

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据我对Yii 1.1.13的了解,ajax form->dropDownList没有Chtml::dropDownList这样的选项,只有form->dropDownList。{/ p>

因此,您可以选择手动自定义事件更改Chtml::dropDownList或添加更多jQuery脚本来自行处理,或者只需切换到使用 <?php echo CHtml::dropDownList('inst_province','', array(1=>'A',2=>'B',3=>'C', 4=>'D'), array( 'prompt'=>'Select City', 'ajax' => array( 'type'=>'POST', 'url'=>CController::createUrl('city/selectAll'), 'update'=>'#city_area', 'data'=>array('city_param'=>'js:this.value'), ))); ?> ,如下例所示

{{1}}

http://www.yiiframework.com/wiki/429/an-easy-solution-for-dependent-dropdownlist-using-ajax/