Necesito cargar en un combo especies defruta y que seleccionar alguna de estas se cargen las variedades de esta. Como hago que se actualicen las variedades cuando se seleccione una especie
2 respuestas
Respuesta de katixa
1
1
katixa, - Un año como programador en Visual Basic, Visual FoxPro, FoxPro 2
Para hacer esto hay varios métodos. El primero seria utilizar un par de hojas, aunque yo descartaría esta opción ya que es incomoda para el usuario. Otra es refrescar la hoja a cada click en el combo. Incluye un evento onClick (javascript) en el combo de selección de fruta, llamando de nuevo a la hoja (por ejemplo con window. location. href='nombrehoja.asp' Esto lo meterías en una función en la que antes cargarías los parámetros que le vas a pasar a la hoja. Por ejemplo onClick="recargarFruta(this)" Y la funcion contendría lo siguiente (insisto, javascript) function recargarFruta(formulario) { parametros = ""; parametros += "?fruta=" + formulario.cmbfruta.selectedIndex; window.location.href='hoja.asp'+parametros; } Esto haría que quedase el siguiente código: hoja.asp?fruta=3 (por ejemplo la 3, supongamos) De esta forma, al recargar la hoja, tienes el valor de la fruta que han seleccionado. Por supuesto antes de rellenar el combo simplemente tendrías que meter un IF verificando que si el código de fruta del registro en el RecordSet coincide con el código del Request. QueryString (en este caso 3) se añada la palabra " selected", para que así el navegador muestre marcado el registro que el usuario clico. A su vez, al recargar el combo de variedades, harías una SELECT sobre la tabla de variedades que pertenezcan a la fruta 3. Si tuvieses más combos que fuesen dentro de variedades, más de lo mismo. Al clicar ahí habría que llamar a otra función (por ejemplo cargarVariedades) en la que ademas de pasar la fruta pasarías la variedad. Espero te haya servido. Puede parecer un poco complejo pero funciona siempre que lo montes bien, tengo hecho algo así para una hoja con 8 combos, y va sin problemas.
Perdona, pero es que hoy mientras desarrollaba un modulo que hace básicamente lo mismo que pides tú (y lo mismo que te he explicado) me he dado cuenta de que te respondí mal. El evento que hay que poner en el combo no es "onClick", sino que "onChange". Por ejemplo: <select name="cliente" onChange="cargarCliente(this)">
- Anónimoahora mismo
Respuesta de reynerd
1
1
reynerd, Trabajo en programacion web desde hace ya 6 años
Si quieres cargar las combos sin recargar las páginas, tendrías que utilizar javascript Yo recargaría la página cuando cambias la combo