Lo que quiero implementar es un FORM para agregar clientes con dos opciones SELECT de manera que el primer SELECT contenga las provincias así al seleccionar una provincia la segunda opción SELECT se cargue automaticamente con las ciudades asociadas a la provincia seleccionada en el primer SELECT, espero se entienda.
Lo probe con SQLFORM, pero no me esta funcionando, alguien me puede ayudar o indicandome algun documento que muestre como hacer esto.
> Lo que quiero implementar es un FORM para agregar clientes con dos > opciones SELECT de manera que el primer SELECT contenga las provincias así > al seleccionar una provincia la segunda opción SELECT se cargue > automaticamente con las ciudades asociadas a la provincia seleccionada en > el primer SELECT, espero se entienda.
> Lo probe con SQLFORM, pero no me esta funcionando, alguien me puede ayudar > o indicandome algun documento que muestre como hacer esto.
Hola, primero te voy a comentar como resolví yo algo muy parecido (no se si es muy ortodoxo, pero me funcionó)... después te voy a hacer un mangazo:
primero) en default.py defino esta función:
## este combo lo usa via ajax la función de register para completar localidad en función de provincia def combo_localidad(): provincia = request.vars.provincia localidades = db((db.localidades.id_provincia==db.provincias.id) & (db.provincias.nombre==provincia)).select(db.localidades.ALL, orderby=db.localidades.nombre) if len(localidades)>0: opciones = '' for localidad in localidades: opciones += '<option value=\"%(opcion)s\">%(opcion)s</option>' %dict(opcion=localidad.nombre) else: opciones = '<option>No hay opciones!</option>' return opciones
en la vista default.html agrego este javascript: <script language="javascript"> {{if request.args(0)=='register':}} jQuery(document).ready(function() { jQuery("#auth_user_ciudad").html("<option>Elija una provincia primero</option>") });
jQuery("#auth_user_provincia").change(function(){ var pcia = jQuery("#auth_user_provincia").val(); $.ajax({ async: false, url: "{{=URL('default','combo_localidad')}}", data: 'provincia='+pcia, context: jQuery('#ventana'), success: function(datos){ jQuery("#auth_user_ciudad").html("<option>Elija una provincia primero</option>").html(datos); } }); }); {{pass}} </script>
después) ahora te hago el mangazo. Tengo tambien dos tables provincias y localidades.... resulta que me dieron solo las localidades de rio negro y no logro conseguir el combo completo.... ¿pecaría de atrevido si te pidiera me facilitaras esas tablas?
Bueno gracias y suerte
El 2 de abril de 2012 13:35, FERNANDO VILLARROEL <fvillarr...@yahoo.com>escribió:
> Lo que quiero implementar es un FORM para agregar clientes con dos > opciones SELECT de manera que el primer SELECT contenga las provincias así > al seleccionar una provincia la segunda opción SELECT se cargue > automaticamente con las ciudades asociadas a la provincia seleccionada en > el primer SELECT, espero se entienda.
> Lo probe con SQLFORM, pero no me esta funcionando, alguien me puede ayudar > o indicandome algun documento que muestre como hacer esto.
> Fernando
-- "En un país colonial las oligarquías son las dueñas de los diccionarios" (John William Cooke)
Hola Nicolas. Gracias por tu ayuda lo voy a probar. Mis localidades no creo que te sirvan ya que yo estoy en Chile, verdad? Gracias nuevamente.
--- On Mon, 4/2/12, nicolás rosbaco <antiya...@gmail.com> wrote:
From: nicolás rosbaco <antiya...@gmail.com> Subject: Re: FORM SELECT To: web2py-usuarios@googlegroups.com Date: Monday, April 2, 2012, 4:15 PM
Hola, primero te voy a comentar como resolví yo algo muy parecido (no se si es muy ortodoxo, pero me funcionó)... después te voy a hacer un mangazo:
primero) en default.py defino esta función:
## este combo lo usa via ajax la función de register para completar localidad en función de provincia def combo_localidad(): provincia = request.vars.provincia localidades = db((db.localidades.id_provincia==db.provincias.id) & (db.provincias.nombre==provincia)).select(db.localidades.ALL, orderby=db.localidades.nombre)
if len(localidades)>0: opciones = '' for localidad in localidades: opciones += '<option value=\"%(opcion)s\">%(opcion)s</option>' %dict(opcion=localidad.nombre)
else: opciones = '<option>No hay opciones!</option>' return opciones
en la vista default.html agrego este javascript: <script language="javascript">
{{if request.args(0)=='register':}} jQuery(document).ready(function() { jQuery("#auth_user_ciudad").html("<option>Elija una provincia primero</option>") });
jQuery("#auth_user_provincia").change(function(){ var pcia = jQuery("#auth_user_provincia").val(); $.ajax({ async: false, url: "{{=URL('default','combo_localidad')}}",
data: 'provincia='+pcia, context: jQuery('#ventana'), success: function(datos){ jQuery("#auth_user_ciudad").html("<option>Elija una provincia primero</option>").html(datos);
} }); }); {{pass}} </script>
después) ahora te hago el mangazo. Tengo tambien dos tables provincias y localidades.... resulta que me dieron solo las localidades de rio negro y no logro conseguir el combo completo.... ¿pecaría de atrevido si te pidiera me facilitaras esas tablas?
Bueno gracias y suerte
El 2 de abril de 2012 13:35, FERNANDO VILLARROEL <fvillarr...@yahoo.com> escribió:
Hola Amigos.
Tengo dos tablas una con provincias y otra con ciudades
Lo que quiero implementar es un FORM para agregar clientes con dos opciones SELECT de manera que el primer SELECT contenga las provincias así al seleccionar una provincia la segunda opción SELECT se cargue automaticamente con las ciudades asociadas a la provincia seleccionada en el primer SELECT, espero se entienda.
Lo probe con SQLFORM, pero no me esta funcionando, alguien me puede ayudar o indicandome algun documento que muestre como hacer esto.
Fernando
-- "En un país colonial las oligarquías son las dueñas de los diccionarios" (John William Cooke)
Yo saqué localidades de la web de un sitio estatal en formato excel si
no me equivoco. Me parece que era del INTI. La verdad que no sé qué se
hizo del archivo, no creo que lo tenga.
On 3 abr, 07:46, nicolás rosbaco <antiya...@gmail.com> wrote:
> Lo que quiero implementar es un FORM para agregar clientes con dos opciones SELECT de manera que el primer SELECT contenga las provincias así al seleccionar una provincia la segunda opción SELECT se cargue automaticamente con las ciudades asociadas a la provincia seleccionada en el primer SELECT, espero se entienda.
> Lo probe con SQLFORM, pero no me esta funcionando, alguien me puede ayudar o indicandome algun documento que muestre como hacer esto.