Modificar un combo box con Javascript

Tengo un formulario con varios COMBO BOX. Cambiando el valor de uno deben actualizarse los valores de los otros. Estos valores se obtienen de una consulta SQL (uso ASP). Esto es fácil de hacer refrescando la página para hacer de nuevo la consulta SQL y que los combo box contengan los valores apropiados, pero... Existe la posibilidad de que yo cree un array en javascript con todos los posibles valores de los combo box y que se vayan actualizando según la selección de uno u otro..
¿Qué me aconsejáis? ¿Cómo cambio los valores de los combo box y que funcione tanto en IE como en Netscape?
Decía que para hacer esto tengo dos soluciones:
1) Cuando modifico el valor del primer combo box actualizo la página entera (volviendo a ejecutar el asp) y regenerando la web volviendo a consultar la base de datos y tal.
2) Al generar la página pongo todos los datos posibles que puedan tener los combo box en un array de javascript y mediante una función de javascript voy refrescando los valores del segundo combo box. La ventaja de esto es que no hay que refrescar la página consiguiendo así mucha más velocidad y vistosidad, siempre y cuando la consulta SQL no genere muchos registros, si no la página tardaría bastante en cargarse.
La primera opción es muy sencilla
la pregunta es como hago la 2) en javascript...

1 respuesta

Respuesta
1
A mi lo que se me ocurre seria meter todos los resultados en una tabla de dos dimensiones. En una columna el dato, y en la otra un id del grupo al que pertenecería al salir en un combo.
Bueno, a la hora de meter esos datos en la tabla, seria una tabla dinámica, ya que no sabemos cuantos elementos podrá contener, y al igual que esos datos los metes en un combo, los metes en la tabla. Osea, que el método seria el mismo pero cambiando el nombre, y lógicamente con un contador para los indices.
Si estoy siendo demasiado genérico, perdona, no se si sabes JScript o no.
Yo personalmente lo haría de la ! ª forma que dices, ya que aunque sea menos vistoso, seguramente sea más rapido, tanto como si son pocos registros como si son muchos, porque si son pocos registro, y decides hacerlo de la segunda manera, quizá merezca más la pena meterlos a pelo en un combo; y si son muchos, la carga inicial va a ser muy dura.
Otra cosa que puedes hacer es lo siguiente:
Si sabes que solamente pueden salir 4 tipos distintos de datos en los combos, puedes crearte 4 combos, uno para cada tipo de dato.
Esos combos los metes en capas (inicialmente ocultas), y luego ya solamente tendrías que hacer que dependiendo de la opción elegida, mostrar una capa o mostrar otra. De esta manera cargas todo de una sola vez y daría el resultado que tu quieres.
Se trata de una web para una intranet por lo tanto la velocidad de carga de las página es muy rápida y no habría problema en utilizar la primera opción... También es verdad que al ser rapido se podría usar la segunda opción y el parpadeo seria mucho menor...
De todas formas pregunto, ¿sabes cómo podría modificar los valores de un combo box desde javascript? Y que funcione tanto en netscape como en internet explorer jejej..
Para hacer dinámicamente el combo, yo lo haría con ASPcon JSP, aunque si lo quieres hacer con JScript, lo haría con document. write(), y lo pintaria despues de leer los datos. Lo que no se si se podrá hacer en JS es meter dinámicamente el valor de los campos.
Osea tendrías que hacerlo con ASP, y en el document. write meter el campo en ASP, y asi podrias hacerlo dinamicamente.
Si lo que quieres es que se cargue dependiendo de una opción pulsada, una de dos, o vuelves a leer de la BBDD y lo haces con asp (y volvemos al principio de tu pregunta), o lo cargas de una sola vez y dependiendo de la opción cargas una cosa u otra.
Si es un formulario simple no debería dar problemas para NS, aunque si te metes con capas y Formularios te dará más de un quebradero de cabeza el "maravilloso" Netscape xD.
De todas formas, si me pasas tu correo, te mando el manual de referencia de JavaScript que es lo mejor que hay. Vienen todos los métodos de todos los objetos y ejemplos, aunque esta en ingles.
Esta bien, pásame el manual de JavaScript ese, a ver si encuentro lo que busco.
Gracias
email: [email protected]
Ya esta mandado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas