2013-08-25 3 views
0

У меня есть небольшая проблема с вызовом AJAX контроллера в Yii. Дело в том, что я пытаюсь отфильтровать данные одного dropDownList, основанного на значении предыдущего выбранного элемента.Запрос Ajax не запускается. [Yii framework]

В файле представления, где я выяснял является источником проблемы, у меня есть этот кусок кода:

<?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); 
    } 

Ajax-вызов метода Select не запускается при нажатии dropDownList. Я отслеживал запрос с использованием Firebug, и сообщение об ошибке не было отключено.

Кто-нибудь знает, что я могу сделать ?.

Заранее спасибо.

ответ

0

С моей помощью в Yii 1.1.13, такой опции нет для ajax для form->dropDownList, только Chtml::dropDownList.

Поэтому у вас есть возможность вручную изменить пользовательские событие form->dropDownList или добавить больше JQuery скрипт, чтобы справиться с этим самостоятельно, или просто переключиться использовать Chtml::dropDownList, как показано ниже, например

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

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

Смежные вопросы