Preencher TextField a partir de um dropdownList

Boa tarde.

Tenho o seguinte problema que não estou a conseguir resolver.

Num formulário ao seleccionar um curso pretendo que após a selecção deste sejam preenchidos automaticamente dois textfields que estão relacionados com a escolha efectuada, isto é, se eu escolher por exemplo o curso de Inglês tem de me preencher no campo de texto se este é Interno/Externo e Laboral/Pós-Laboral, estando esta informação na mesma tabela onde vou buscar o nome do curso.

Será que me podem dar um exemplo de como fazer.

Consegui colocar este tutorial a funcionar, mas com dropdownlist e não com textField.

http://www.yiiframework.com/wiki/24/creating-a-dependent-dropdown/

Obrigada.

Olá,

Para fazer isso você vai precisar fazer uma chamada AJAX para pegar os valores que quer colocar nos campos texto.

Segue um exemplo simplificado para fazer isso:




<?php>


$script= '

$.ajax({

    type: "GET",

    url:"'.$this->createUrl('curso/tipo').'",

    data:{id:this.value},

    success: function(data){

        $("#texto1").val(data.texto1);

        $("#texto2").val(data.texto2);

    },

});

';


echo $form->field($model, 'curso_id')->dropDownList($cursos, ['prompt'=>'-Escolha o curso -', 'onchange'=>$script]); 




Desde já obrigada pela ajuda.

Alterei o código em ajax para o nome dos meus textFields e criei a minha action. Consigo ir buscar os valores direitinhos à base de dados ao seleccionar o curso e imprimir para o ecrã através do firebug, mas não consigo colocar o mesmo nas textField.

A minha action é a seguinte:


public function actionDynamiccities()

{

    $data=  Curso::model()->findByPk($_GET['id']);

   echo CHtml::textField('tipo',"$data->tipo",array());

}

O meu dropDownList está um pouco diferente do exemplo que indicou pois estava a dar erro.


  echo $form->dropDownList($model,'curso',$cu,array('empty'=>'Selecione uma opção','onChange'=>$script)); ?>

Qual é o erro que estou a cometer?

Obrigada.

Resolvido!

Segue a minha solução:




     $script= '

$.ajax({

    type: "GET",

    url:"'.$this->createUrl('accao/dynamiccities').'",

    data:{id:this.value},

    dataType:"json",

    success: function(data){

        $("#curso_tipo").val(data.tipo);

        $("#curso_tipo").attr("disabled", "disabled");

        if(data.t33 == "1"){

        $("#curso_t33").val("Laboral");

        $("#curso_t33").attr("disabled","disabled"); 

}

else if(data.t33== "2")

{

        $("#curso_t33").val("Pós Laboral");

        $("#curso_t33").attr("disabled","disabled"); 

}

else

{

        $("#curso_t33").val("Misto");

        $("#curso_t33").attr("disabled","disabled"); 

        }

       

    },

});

';

                

                $cu=CHtml::listData(Curso::model()->findAll(array('order'=>'nome')),'id','nome');

                echo $form->dropDownList($model,'curso',$cu,array('empty'=>'Selecione uma opção','onChange'=>$script)); ?>



Obrigada