Yii Framework Forum: Combobox Dinámico con Regiones -> Ciudades -> Pueblos - Yii Framework Forum

Jump to content

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

Combobox Dinámico con Regiones -> Ciudades -> Pueblos Rate Topic: -----

#1 User is offline   RTJ 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 04-May 12

Posted 12 July 2012 - 03:16 PM

Hola a todos,
llevo muy poco tiempo con yii, y me estoy preguntando cual seria la forma mas fácil de hacer un Combobox Dinámico con Regiones -> Ciudades -> Pueblos con yii?
Como ejemplo tendrá 3 tablas en la base de datos ( Regiones, Ciudades, Pueblos )
y tendrían 3 campos.
ej: tablas
regiones: id, nombre
ciudades: id, nombre, regionid
pueblos: id, nombre, ciudadesid

Que yii en la vista al seleccionar la región que me cargue en la lista las ciudades que pertenecen a esta región y al seleccionar la ciudad que me cargue los pueblos de esta ciudad en la lista pueblos.

Lógicamente todo debe realizarse sin actualizar la pagina :) normalmente programo todo en php puro y para estas cosas uso ajax o jquery pero me gustaría ver un ejemplo de como se podría hacer esto en yiiframework.

Estoy pensando en usar yii en mi próximo proyecto pero necesito ver algunas cosillas aun :)
0

#2 User is offline   JCS 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 57
  • Joined: 10-January 11
  • Location:Bogotá

Posted 12 July 2012 - 03:31 PM

te propongo algo

en el archivo CityController.php o como se llame el controlador :P

public function actionListCities()
{
	$criteria = new CDbCriteria();
	$criteria->addSearchCondition('regionid', $_GET['regionid'], true);
	$cities = City::model()->findAll($criteria);
	$rows = array();
	foreach($cities as $city)
	{
		$rows[] = array('city'=>$city->attributes);
	}
	header('Content-type: application/json; charset = utf-8');
	$json = CJSON::encode(array('cities'=>$rows));
	echo $json;
}


con ajax haces una peticion a 'http://tudominio.com/City/listCities?regionid=id' (o como sea que tenas tus urls, la cosa es acceder a la nueva función que creaste) y si la respuesta es exitosa entonces tratas los datos como le haces normalmente con JavaScript.
0

#3 User is offline   RTJ 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 04-May 12

Posted 13 July 2012 - 06:51 AM

Hola,
A mi me interesaría ver la forma correcta de hacerlo con yii.
Ya que estoy aprendiendo varios frameworks al mismo tiempo, de momento yii va ganando por poco sobre fuelPHP ( fuelphp me parece muy bueno pero un poco verde aun) pero en este caso en concreto de momento va ganando cakephp ya que se puede hacerlo fácilmente con los helpers de cakephp.
Y por esto me gustaría ver la forma correcta de hacerlo con yii. Y asi aclararme algunas dudas :)

De todas formas gracias por tu respuesta.

saludos.
0

#4 User is offline   JCS 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 57
  • Joined: 10-January 11
  • Location:Bogotá

Posted 13 July 2012 - 10:37 AM

pues en el foro yiiframeworkenespanol.org hicieron otra propuesta a tu pregunta que me parece mas adecuada para lo que buscas, espero sea de ayuda
1

#5 User is offline   RTJ 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 04-May 12

Posted 13 July 2012 - 11:33 AM

Gracias a todos por vuestras respuestas.

Ya lo tengo todo claro :) en octubre tengo que desarollar un proyecto bastante grande y seguramente usare yii
0

#6 User is offline   Nicodema 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 12-July 12

Posted 13 July 2012 - 12:23 PM

Hola JCS, yo necesito tambien los dropDownList dependientes, me he estado guiando por este ejemplo http://www.yiiframew...endent-dropdown, pero no me ha funcionado, he probado lo que has dicho y tu funcion si me arroja resultados :) , podrias por favor poner el codigo que utilizas en la vista.

Gracias!!!
0

#7 User is offline   JCS 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 57
  • Joined: 10-January 11
  • Location:Bogotá

Posted 13 July 2012 - 01:28 PM

RTJ Yii es un framework muy bueno, la verdad lo he usado en varios proyectos grandes y estoy bastante satisfecho, ahora estoy haciendo un par de pruebas con otros frameworks (Cake, Fuel y Kohana) y pues me sigue gustando mas Yii, creo que me voy a dedicar en forma a estudiar este framework porque aunq lo he usado mucho aun hay momentos en los que lo sub-utilizo.

Nicodema, pues ese fue un ejemplo que se me ocurrió para RTJ que dice que esta acostumbrado a usar php puro y JavaScript, acá te pongo un ejemplo de como hacerlo por este metodo, pero igual te recomiendo visitar el link que pongo al final del post, no los he probado personalmente pero es bueno tener conocimiento de varias soluciones a un mismo problema a ver cual se adapta mejor a nuestras necesidades

creo que va asi, no lo he probado y lo saque en un momento ais que puede tener errores

<select id="regionSelect">
	<option value="">Seleccione una regi&oacute;n</option>
	<option value="1">Regi&oacute;n 1</option>
	<option value="2">Regi&oacute;n 2</option>
	<option value="3">Regi&oacute;n 3</option>
</select>
<select id="citySelect" />

<script type="text/javascript">
	function setCities(id) {
		$.getJSON('/city/listCities', {id: id}, function(data) {
			$.each(data.cities, function(i, ciudad) {
				var option = new Option(ciudad.city.name, ciudad.city.id);
				$('#citySelect').append(option);
			});
		});
	}
	
	$("#regionSelect").change(function() {
		var city_id = $(this).val();
		$('#citySelect').empty();
		setCities(city_id);
	});
</script>


http://www.yiiframew...read.php?tid=63
0

#8 User is offline   RTJ 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 04-May 12

Posted 13 July 2012 - 03:12 PM

al final la forma mas facil de hacerlo me parecio esta:
http://www.yiiframew...read.php?tid=60
0

#9 User is offline   stilomio 

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

Posted 27 November 2012 - 03:05 PM

Aqui Explico como hacerlo


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