Yii Framework Forum: Sacar Valor De Dropdownlist Dependiente - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Sacar Valor De Dropdownlist Dependiente Sacar valor de dropdownlist dependiente e enviarlo a otra vista Rate Topic: -----

#1 User is offline   daniqh 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 20
  • Joined: 25-March 13

Posted 25 March 2013 - 01:46 PM

Buenas, soy nuevo en yii, he estado haciendo dos dropdownlist dependientes guiándome de un tutorial que he encontrado por aquí. Ahora esto intentado sacar el id seleccionado del segundo dropdownlist y mandarlo a otra vista para cargar un grid view.Supongo que habrá que hacerlo mediante un botón con javascrip, para poder pasarle la variable id.

Vista con 2 los dos combos:

<div class="row">
<?php	
	//Label "Games"
	echo $form->labelEx($model_games,'Games'); 
	//Inicializo dropDownList con el modelo games
    echo $form->dropDownList($model_games,'Id_Game',CHtml::listData(Games::model()->findAll(),'Id_Game','Name'),
							array(
								'ajax' => array(
												'type' => 'POST',
												'url' => CController::createUrl('Site/Rellenarmodos'),//llamo a la función Rellenar modos para actualizar el combo Modos.
												'update' => '#'.CHtml::activeId($model_modes,'Id_Mode'),
												),
								'prompt' => 'Seleccione un Juego...' )
		); 
?>
</div>
<div class="row">
<?php
	//Label "Modes"
	echo $form->labelEx($model_modes,'Modes'); 
	//Inicializo combobox vacío.
	echo $form->dropDownList($model_modes,'Id_Mode',array(),
	array('prompt' => 'Seleccione Modo...'));
	
	
	echo $form->error($model_modes,'Id_Game'); ?>
   
</div>


Función para rellenar combodependiente en el Controlador:
public actionIndex(){
//Para pasar más de un modelo a una vista ==>
		$this->render('index',array('model_games'=>$model_games,'model_modes'=>$model_modes));
		
	}
	
	// Funcion para llenar combobox dependiente Modos
	public function actionRellenarmodos()
   {
		$Id_Game= $_POST['Games']['Id_Game']; 
		$lista= Modes::model()->findAll('Id_Game='.$Id_Game,array(':Id_Game'=>$Id_Game));
		$lista=CHtml::listData($lista,'Id_Mode','Name');
		
		echo CHtml::tag('option',array('value' => ''),'Seleccione Modo...',true);
		foreach ($lista as $valor => $nombre){
			echo CHtml::tag('option',array('value'=>$valor),CHtml::encode($nombre));
		}

Como tendría que hacer el botón para que me pille el Id_Modo y me lo envíe al controlador?
0

#2 User is offline   stilomio 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 45
  • Joined: 04-June 12

Posted 28 March 2013 - 09:10 PM

Pero quieres q al momento de darle clic al segundo dropdownlist, te haga un redirect a otro action, o quieres mostrar en esa misma vista el gridview??

Lo que entendi fue esto:

1 - seleccionas el primer dropdown y por ajax envia el valor al segundo dropdown.

2 - Ahora al seleccionar el segundo dropdown filtras en el gridview que estara en la vista o que quieres q aparezca?? o el gridview esta en otra vista y haras un redirect ?
0

#3 User is offline   daniqh 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 20
  • Joined: 25-March 13

Posted 29 March 2013 - 06:49 AM

El gridview esta en otra vista.

Ya he conseguido obtener el id del combo rellenado mediante ajax mediante este botón:
echo CHtml::ajaxButton ("Ver Eventos", CController::createUrl('Site/Events'),
							array('type'=>"POST",
							'update' => '#data',
							'data'=> array('modo_id' => 'js:document.getElementById("Modes_Id_Mode").value')));


En el controlador he intentado hacer esto:
//Ver Eventos
	public function actionEvents(){
		if (isset ($_POST['modo id'])){
			//Recogo el valor del dropdown lsit cargo los registros que contengan ese modo FUNCIONA pero no renderiza la vista "
			$data['idmodo'] = $_POST['modo_id'];
			$model= Events::model()->findAll('Mode='.$data['idmodo']);
			$this->render('events',array('modl'=>$model));
	}
	else
		$this->render('events');
	}


Obtiene el valor correctamente pero no renderiza la vista :S .¿Por qué me sucede esto?

En el firebug de mozilla cuando llamo a Events me devuelve el codigo html de la vista events, pero no me redirige a esta se mantiene en la vista index :S
0

#4 User is offline   lagogz 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 30-November 12
  • Location:Galiza

Posted 01 April 2013 - 11:12 AM

Y pq en la vista no usas esto:

<div class="row buttons">
        <?php 
            echo CHtml::submitButton('Button Name'); 
        ?>
    </div>


Dentro de un form claro. Te lo comento pq mediante el botón AJAX estás enviando datos mediante POST, lo cuál puedes hacer mediante un botón de envío de formulario normal.

Yo lo hago así y me vá de perlas.

Un saludo.
-----------------------------------------------------------------------------------------------
------------------------------- VISITEN FOCUCHASART --------------------------------
-----------------------------------------------------------------------------------------------
0

#5 User is offline   safitanet 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 45
  • Joined: 04-August 11

Posted 02 April 2013 - 02:27 AM

Hola, si quieres ir a otra vista tendrías que hacer redirect... Y si lo que quieres es que la pinte donde estás, tendrías que hacer un echo de la vista y recogerlo en alguna div de la view

Saludos!!
0

#6 User is offline   daniqh 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 20
  • Joined: 25-March 13

Posted 08 April 2013 - 09:44 AM

Yo lo que no entiendo es que le doy al botón ajax,luego en el actionEvents me recoge bien el $_POST, hace la función y me devuelve como respuesta la vista html con los datos que le corresponde. Ahora viene lo raro, en el navegador se mantiene en index y no cambia a la vista events aunque en el firebug me muestra como respuesta lo que anteriormente he mencionado.

¿Porqué no me redirige a la otra vista si el firebug dice que la respuesta es el codigo html de la vista events?

PD:Lo he solucionado cambiando el botón ajax por un submit como ha dicho el compañero.

Bueno, al parecer me quedare con la duda de porque no me funcionaba el botón ajax. Gracias por las respuestas

Un saludo.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users