• Publicidad

SELECT cuyas OPTION dependen de lo elegido en otro SELECT

Discute todo acerca de JavaScript así como DHTML o la tecnología AJAX.

SELECT cuyas OPTION dependen de lo elegido en otro SELECT

Notapor Lor » 2006-03-25 05:14 @260

Agradecería si me pudiesen ayudar con lo siguiente. Tengo en un Form dos campos SELECT , supongamos en uno PAISES y en el otro ProViNCIAS. Dependiendo lo que se elija en el primero, debo desplegar las opciones del segundo.

El principal problema es que las opciones que despliegan no son siempre las mismas, es decir estáticas, sino que son datos dinámicos de una base de datos. Es decir los valores OPTION del primer SELECT cambian permanentemente, no puedo hacer un SRIPT estatico con los posibles OPTION a desplegar.

Muchas gracias :)
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Publicidad

Notapor kidd » 2006-03-25 09:35 @441

Hola:

Aquí la parte más díficil no es lograr que pongas los datos de manera dinámica, pues eso lo puedes lograr con Perl. La parte más díficil es el Javascirpt para lograrlo.

Sin embargo, ya alguien tiene la solución. La otra vez quería lograr algo similar que tú, el chiste es que se pudiera seleccionar la ciudad, a partir de eso se desplegarán las colonias y finalmente las calles.

Estuve buscando un buen rato hasta que me encontré con una librería que brinda el "Javascript Toolbox":
http://www.javascripttoolbox.com/lib/dynamicoptionlist/

Realmente está perfecta la librería, sumamente sencilla de usar y aplicar en distintos casos.

Ahí en el URL que te doy, podrás encontrar el link para descargar la librería, que no es más que un .js pequeño, pero aparte podrás encontrar ejemplos de lo que puedes lograr y su documentación.

Chécalo y has pruebas, si te trabas mucho yo te ayudo, pues ya lo he usado para crear una cosa similar a lo que querías.

Ya que tengas el código funcionando, entonces ya le metemos Perl para que saques las opciones de manera dinámica.


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Lor » 2006-03-25 15:25 @684

Uriel:

Muchas gracias, lo intentare , lo veo dificil, sino puedo lograrlo me comunicare contigo nuevamente. Gracias
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Notapor kidd » 2006-03-25 21:02 @918

Hola Lor:

Realmente es muy sencillo, pero igual, si se te complica pon lo que llevas y vemos que onda.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor rookie » 2006-05-12 12:37 @567

Saludos a todos:

Como dice Kidd , yo tenia un problema parecido, y lo solucione con Ajax.
Aunque en javascript de podria también.. siempre y cuando los valores de los select no sean consultados de una BD, porque si es asi, tendrias que utilizar PHP para las consultas.

Bueno, mira te paso una línea con la que desde Javascript puedes obtener el valor que fue seleccionado en el primer Select, para asi desplegar los valores del select2 , espero te sirva:
var valor_combo=document.getElementById("id_de_tu_select").options[document.getElementById("id_de_tu_select").selectedIndex].value;

Me avisas si lograste hacerlo. Suerte
rookie
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2006-03-01 18:48 @825

Notapor marcosss » 2007-05-14 06:34 @315

Hola estoy programando en PHP y Javascript y tengo el mismo problema que decís aquí, hacer un select dinámico, y vuestra solución no me funciona, me da 1 error al crear el DynamicOptionList(). ¿La sintaxis es así?

Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
<script type="text/javascript">
var names = new DynamicOptionList();
names.addDependentFields("sex","names");
names.forValue("boy").addOptions("Matt","Bob","Joe","Bill","John");
names.forValue("girl").addOptions("Jane","Angie","Jennifer","Amy","Sue");
names.forValue("boy").setDefaultOptions("Joe");
</script>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Por qué a mí no me funciona?
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Notapor explorer » 2007-05-14 07:16 @344

¿Has cargado la librería al principio del código HTML?
Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
<script type="text/javascript" src="dynamicoptionlist.js"></script>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Has incluido una inicialización en el onload del body?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
<body onLoad="initDynamicOptionLists()">
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Eso es al menos lo que pone en su documentación.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Mostrar objeto javascript

Notapor marcosss » 2007-05-14 10:23 @474

Si, ya la tengo incluida, pero estoy trabajando con PHP y Javascript y ya no me da un error, ahora lo que no sé es como mostrar el objeto, ¿podrías ayudarme?

El código que tengo es este:

Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script type="text/javascript" src="dynamicoptionlist.js"></script>
<script type="text/javascript">

var names = new DynamicOptionList();

names.addDependentFields("sex","names");
names.forValue("boy").addOptions("Matt","Bob","Joe","Bill","John");
names.forValue("girl").addOptions("Jane","Angie","Jennifer","Amy","Sue");
names.forValue("boy").setDefaultOptions("Joe");


names.DOL_printOptions(); // No sé pero esta función no me imprime

</script>
<body onLoad="initDynamicOptionLists()">
</body>
</html>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y no sale nada por la pantalla, sólo me da este error:

Código: Seleccionar todo
ERROR: Couldn't find form element sex in any form on the page! Init aborted


Me dice que no encuentra el elemento sexo en ningún formulario de esta página.
Muchas gracias
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Notapor explorer » 2007-05-14 10:57 @498

Je, je... claro... en la página debes poner los tags <select> con esos nombres: sex y names.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Lor » 2008-03-12 12:57 @581

No puedo lograr esto, los elementos de mis TAG SELECT son datos obtenidos de dos query a una base de datos. Hago dos consultas a mysql y los resultados de las mismas me llenan los Tag.

Necesitaría que alguien que haya logrado hacerlo con Perl y JavaScript me pase unas líneas de código.


Muchas gracias.
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282


Volver a JavaScript

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado