Erro no Ajax DropoDownList dependente

Srs,

eu fiz o exemplo Creating a dependent dropdown. Porém, o método que eu criei no controller não está sendo executado para alimentar o dropDownList dependente.

vocês sabem o que pode estar acontecendo?

Eu estou desconfiando do comando CController::createUrl(‘currentController/dynamiccities’) do DropoDownlist independente.

Apesar de ter criado o método actionDynamiccities no Controller corrente da view.

Olá Santanna.

Ainda não implementei esse exemplo, mas de início, sugiro que vc utilize o firebug para analisar essa requisição.

Segue o meu exemplo que está funcinando:

na view:




	<div class="row">

			<?php echo $form->labelEx($model,'ServicoId'); ?>

			<?php 

			echo CHtml::dropDownList('ServicoId',$model->ServicoId, CHtml::listData(Servicos::model()->findAll(),'Id','Nome'),

					array(

							'empty'=>'Escolha Servico',

							'ajax' => array(

							'type'=>'POST', //request type

							'url'=>CController::createUrl('requisicoesBlocos/SendMaterialId'), 

							'update'=>'#MaterialId', //selector to update

							)

					)

			); 

			?>

			<?php echo $form->error($model,'ServicoId'); ?>

	</div>

	<?php

        // Este bloco serve para quando fazemos update

	$data = array();

	if(!$model->isNewRecord){

	$qry = "SELECT * from materiais

					inner join materiais_servicos on

					materiais_servicos.ServicoId = '{$model->ServicoId}'

					and materiais_servicos.MaterialId = materiais.Id

					group by Nome;";

							   

			$result = Yii::app()->db->createCommand($qry)->queryAll();

			$data=CHtml::listData($result,'MaterialId', 'Nome');

	}

	?>

	<div class="row">

					<?php echo $form->labelEx($model,'MaterialId'); ?>

					<?php echo CHtml::dropDownList('MaterialId',$model->MaterialId, $data); ?>

					<?php echo $form->error($model,'MaterialId'); ?>

	</div>



No Controller:




	public function actionSendMaterialId()

	{

		$qry = 'SELECT * from materiais

				inner join materiais_servicos on

				materiais_servicos.ServicoId = '.'"'.$_POST['ServicoId'].'"

				and materiais_servicos.MaterialId = materiais.Id

				group by Nome;';

			   

		$result = Yii::app()->db->createCommand($qry)->queryAll();


		$data=CHtml::listData($result,'MaterialId', 'Nome');

		 foreach($data as $id => $value)

            {

                echo CHtml::tag('option',array('value' => $id),CHtml::encode($value),true);

            }

	}



Nao te esqueças nas Rules do Controller pôr o ‘SendMaterialId’:




	return array(

			array('allow',  // allow all users to perform 'index' and 'view' actions

				'actions'=>array('index','view', 'SendMaterialId'),

				'users'=>array('*'),

			),



Espero ter ajudado. Abraço!

Thiago e Bono,

obrigado pela ajuda. Estava faltando alterar a questão das rules.

vlw pessoal

Abraços.