Preencher Dropdownlist [Resolvido]

Pessoal, pretendo listar todos os materiais depois de escolher o serviço. A minha query:




                $qry='

                select Id, Nome 

                    from materiais mt 

                    where not exists 

                    (Select null 

                    MaterialId 

                    from materiais_servicos ms

                    where ms.MaterialId = mt.Id and ms.ServicoId='.'"'.$_POST['ServicoId'].'")';

                        

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



Nao venho pedir ajuda sobre esta query. O que pretendo é preencher a segunda dropdowlist com o resultado desta query.

Tenho a primeira Dropdownlist para escolher o "Servico" e a segunda Dropdownlist irá conter todos os materiais do resultado da query.

Como é que faço para passar o valor do ServicoId para a query e dessa forma preencher a segunda Dropdownlist? Do genero, "onChange o Servico" atualiza a segunda DropdownList (Materiais).

O Objetivo é atualizar o $data como o resultado da query. Se assim nao for ira listar todos os materiais e nao quero isso, so quero que mostre os materiais que ainda nao foram inseridos na tabela materiais_servicos para determinado serviço.




// http://www.yiiframework.com/extension/echmultiselect/#hh3

$data= CHtml::listData(Materiais::model()->findAll(),'Id','Nome');

$this->widget('ext.widgets.EchMultiSelect.EchMultiselect', array(

    'model' => $model,

    'dropDownAttribute' => 'MaterialId',     

    'data' => $data,

    'dropDownHtmlOptions'=> array(

        'style'=>'width:150px;',

    ),




É desta que vou ficar sem resposta… :rolleyes:

Olha to sem tempo agora para escrever os códigos, mas resolveria fazer assim:

1 - Criar no controller uma action que faz a query baseada no resultado, ela faz a query e da um renderpartial de uma view que pega a query e cria um dropdownlist.

2 - Na view que tem os dropdownlist crie um javascript que pegue o valor do primeiro dropdownlist e mande por ajax para a action criada no item 1. E também se acontecer o evento sucess ele atualizar uma div.

3 - No DropDownList 2 você coloca dentro de uma div que será atualizada pelo script ajax que chamou.

Pois! Tem que aprofundar os meus conhecimentos… Gostava mesmo de um exemplo prático. Valeu Thii!

To meio atrasado, mas fica ai de referência:

http://www.yiiframework.com/wiki/24/

O cara mostra uma abordagem de como fazer o que você quer.

Allan, obrigado pela dica. Mas já tinha resolvido este problema. Podia existir uma opção para marcar o tópico como resolvido.

Abraço!

Tranquilo, altera o titulo com "[Resolvido] Seu Titulo".