Dropdownlist Traer Detalles

Buenas tardes, Disculpen lo tonto de la pregunta. pero estoy intentando que cuando selecciono algo de un DropdownList me traiga unos valores que se encuentran en otra tabla. algo así.




<div class="row">

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

		<?php echo $form->dropDownList($model,'idmaximaautoridad',

		CHtml::listData(TblMaximaautoridadEstructura::model()->findAll(),'idmaximaautoridad','idmaximaautoridad0.idpersona0.cedula'),

		array(

				'ajax' => array(

					'type' => 'POST',

					'beforeSend' => 'function(){

	                    	if ($("#TblMaximaautoridadEstructura_idmaximaautoridad").val() == "") {

	                    	$("#TblMaximaautoridadEstructura_variableNombre").val("");

	                    	$("#TblMaximaautoridadEstructura_variableApellido").val("");


	                    	}else {

	                    	$("#TblMaximaautoridadEstructura_variableNombre").val("Nombre"); // <-- Aqui deberia traerl el Nombre correspondiente a la cedula seleccionada. seria algo como $model->idmaximaautoridad0->idpersona0->nombre 

	                    	$("#TblMaximaautoridadEstructura_variableApellido").val("Apellido");

	                    	}

                    	}',

					),'prompt' => 'Seleccione la Cedula de Identidad...'

			)

		); ?>

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

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

	</div>


	<div class="row">

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

		<?php echo $form->textField($model,'variableNombre'); ?>

	</div>

	<div class="row">

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

		<?php echo $form->textField($model,'variableApellido'); ?>

	</div>



la cuestion es que necesito que se muestre a quien pertenece la cedula de identidad seleccionada. por lo que necesito que en un textfield se coloque el nombre y el apellido. espero hacerme entender.

Le añades algo como esto a tu dropDownList y listo:




'ajax' => array(

          'type'=>'POST',

          'url'=>CController::createUrl('nombreControlador/nombreAccion'), 

          'update'=>'#nombreControlActualizar',

          )



Esto lo que hace es una llamada AJAX a una acción de tu controlador que actualizará tu control.

Un saludo.

Gracias por responder lagogz disculpa. pero no entendi muy bien tu respuesta. donde se puede hacer la consulta a la BD para que busque el nombre correspondiente a ese numero de cedula seleccionado? como seria la funcion nombreAccion? estoy muy enredado

Buenos días.

Ahí va el ejemplo.

En tu view:




echo CHtml::dropDownList(

                        'name_max_autoridad',

                        $model->idmaximaautoridad,

                        'tu listdata',

                        array(

                             'name' => 'id_max_autoridad',

                             'ajax' => array(

                                           'type'=>'POST',

                                           'url'=>CController::createUrl('nombreControlador/tuAccion'), 

                                           'update'=>'#nombre_apellidos_id',

                                           )

                             )

                        );


echo CHtml::textField(

                     'nombre_apellidos_nombre',

                     '',

                     array('id' => 'nombre_apellidos_id')

                     );



Y en tu controller (recuerda añadir esta acción a las rules del controlador):




public function actionTuAccion()

{

     // Haces las operaciones que necesites. Por ejemplo buscar el nombre y apellidos.

     $maxAutoridadId = $_POST['name_max_autoridad'];


     $nombreApellidos = ......


     echo CHtml::textField(

                     'nombre_apellidos_nombre',

                     $nombreApellidos,

                     array('id' => 'nombre_apellidos_id')

                     );

}



Adáptalo a tu código y listo.

Un saludo.

Check This Hope This will Help you