Foros del Web » Programación para mayores de 30 ;) » Java »

cargar onchange en otro select con funcion java

Estas en el tema de cargar onchange en otro select con funcion java en el foro de Java en Foros del Web. hola a todos otra vez, a ver si alguien tiene alguna idea de como puedo resolver mi problema, tengo un select2 que se debe cargar ...
  #1 (permalink)  
Antiguo 17/01/2008, 08:50
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
cargar onchange en otro select con funcion java

hola a todos otra vez, a ver si alguien tiene alguna idea de como puedo resolver mi problema, tengo un select2 que se debe cargar segun lo seleccionado en un select1, la funcion onchange es la perfecta para ello, la cosa esta en que desde el onchange del select1 llamo a una funcion javascript en la cual al momento de llenar el select2 necesito accesar a la bd mediante una funcion java para obtener los parametros del select segun lo seleccionado en el select uno, pero no puedo colocar codigo java en el javascript y menos aun pq tengo q enviar como parametro lo que se selecciono, realmente no se que hacer ya, alguna idea??
  #2 (permalink)  
Antiguo 17/01/2008, 11:05
 
Fecha de Ingreso: enero-2008
Mensajes: 16
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: cargar onchange en otro select con funcion java

Pues tienes que utilizar JSP y JDBC. Te tendrás que crear una clase java que sea llamada desde la página JSP (una página jsp, puede tener javascript y html también, y básicamente es código java en una página html). Posteriormente la clase java que es llamada desde JSP tendrá que obtener los datos de la base de datos a través de JDBC.

También podrías utilizar EJB en vez de JDBC y te ahorrarías el paso de la creación de la clase java, pero es algo más complicado.

Ya dirás que dudas tienes de lo que te he dicho.
  #3 (permalink)  
Antiguo 17/01/2008, 11:45
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: cargar onchange en otro select con funcion java

en realidad no te entendi mucho, fijate necesito hacer algo asi,

<script languaje="javascript">
function modificartipoproy()
{
var tipoproyecto=new Array()
seleccion=document.agregarcliente.area[document.agregarcliente.area.selectedIndex].value
if(seleccion!=""){
tipoproyecto=<%=listas.getlista_tipoproyecto_porar ea(%>seleccion<%)%>
document.agregarcliente.tipoproy.length=tipoproyec to.length
for(i=0;i<numtipos; i++){
document.agregarcliente.tipoproy.text=tipoproyecto[i]
document.agregarcliente.tipoproy.value=tipoproyect o[i]
}
}else{
document.agregarcliente.tipoproy.length=1
document.agregarcliente.tipoproy.options[0].text=""
document.agregarcliente.tipoproy.options[0].value=""
}
document.agregarcliente.tipoproy.options[0].selected=true
}
</script>

pero la funcion jsp no funciona bien con esa variable javascript, pero esta es la unica manera q yo conozco de cargar un select con datos de bd...
  #4 (permalink)  
Antiguo 18/01/2008, 02:35
 
Fecha de Ingreso: enero-2008
Mensajes: 16
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: cargar onchange en otro select con funcion java

Ese código que tienes ahí dentro de <% ...%> es código JSP, de modo que la página html que contenga ese script javascript tiene que estar dentro de un fichero de extensión jsp (tufichero.jsp). Además necesitarás haber hecho los import adecuados, son etiquetas jsp para añadir las clases java. Comprobar que lo que devuelve ese código es lo que tiene que devolver es relativamente sencillo, sigue estos pasos:

-Ejecuta la página jsp (asegúrate que el código javascript está dentro de la página en la que haces el siguiente paso).
-Una vez ejecutada la página jsp, dale botón derecho y elige 'ver código fuente'.
-Dentro de ese código vete a la línea de tu script javascript, donde añadiste el código jsp y comprueba que devuelve el valor que debería.

Para aclararte las cosas, cuando el servidor sabe que abres una página jsp, llama a un parser que ejecuta el código java (en concreto el tuyo está dentro de las etiquetas jsp) y escribe el resultado de las llamadas a los métodos allí donde tú le has dicho. Si los anteriores pasos no te han valido, puedes debugear una página jsp con la mayoría de programas de desarrollo. Simplemente pon un breakpoint en la línea que te interese y ejecuta el servidor en modo debug.

Ya dirás que resultados has obtenido.
  #5 (permalink)  
Antiguo 18/01/2008, 07:02
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: cargar onchange en otro select con funcion java

Cita:
Iniciado por josimapi Ver Mensaje
Ese código que tienes ahí dentro de <% ...%> es código JSP, de modo que la página html que contenga ese script javascript tiene que estar dentro de un fichero de extensión jsp (tufichero.jsp). Además necesitarás haber hecho los import adecuados, son etiquetas jsp para añadir las clases java. Comprobar que lo que devuelve ese código es lo que tiene que devolver es relativamente sencillo, sigue estos pasos:

-Ejecuta la página jsp (asegúrate que el código javascript está dentro de la página en la que haces el siguiente paso).
-Una vez ejecutada la página jsp, dale botón derecho y elige 'ver código fuente'.
-Dentro de ese código vete a la línea de tu script javascript, donde añadiste el código jsp y comprueba que devuelve el valor que debería.

Para aclararte las cosas, cuando el servidor sabe que abres una página jsp, llama a un parser que ejecuta el código java (en concreto el tuyo está dentro de las etiquetas jsp) y escribe el resultado de las llamadas a los métodos allí donde tú le has dicho. Si los anteriores pasos no te han valido, puedes debugear una página jsp con la mayoría de programas de desarrollo. Simplemente pon un breakpoint en la línea que te interese y ejecuta el servidor en modo debug.

Ya dirás que resultados has obtenido.
esa pagina es jsp, y tiene todos los import, estoy realizando mi tesis, pero la linea donde esta el <% %> tiene mal la sintaxis y siempre me lanza error, supongo que es una de las siguientes dos cosas:
1) O la variable javascript esta mal igualada a la funcion jsp
2) O no puedo enviar de esa forma la variable javascript como argumento de la funcion

En esa linea es donde esta el error, pero no se como solucionarlo
  #6 (permalink)  
Antiguo 18/01/2008, 07:38
 
Fecha de Ingreso: enero-2008
Mensajes: 16
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: cargar onchange en otro select con funcion java

Pues prueba entonces esto:

...
tipoproyecto=<%out.print(listas.getlista_tipo(proy ecto_porarea))%>
...

No está bien escrita la llamada a la función, por eso he supuesto que los paréntesis son así. Básicamente con out.print estás pintando en la salida por defecto (que para una página jsp es la página html en sí) el resultado de esa llamada a tu método java.

Recuerda que puedes debugear la página jsp, eclipse en concreto es una gran herramienta y fácil de utilizar que te puede ayudar mucho.
  #7 (permalink)  
Antiguo 18/01/2008, 08:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: cargar onchange en otro select con funcion java

A no ser que conozcais una tecnica para viajar en el tiempo, una pagina JSP no puede darle un valor dinamicamente a una variable JavaScript en el HTML que ella misma genera. .

Sencillamente imposible.
  #8 (permalink)  
Antiguo 18/01/2008, 08:30
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: cargar onchange en otro select con funcion java

ok greeneyed, pero entonces como me recomiendas poder realizar el llenado del select2 en base a lo seleccionado en el select1 si necesito una conexion a la bd con java?????
  #9 (permalink)  
Antiguo 18/01/2008, 08:36
 
Fecha de Ingreso: enero-2008
Mensajes: 16
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: cargar onchange en otro select con funcion java

No entiendo que quiere decir greeneyed... La próxima vez que se inicie la página jsp tendrá el valor actualizado, vamos, creo que me estoy perdiendo en la conversación. Creo que sería más positivo ayudar a decir cosas que no se entienden...
  #10 (permalink)  
Antiguo 18/01/2008, 08:39
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: cargar onchange en otro select con funcion java

lo que greeneyed se refiere es que el argumento de la funcion que yo estoy enviando en javascript, y pues eso creo no se puede hacer asi... la cosa esta en que no se como solucioar mi problema... tiene que haber una manera de lograr cargar mi select2 en base al select1 con una funcion java...
  #11 (permalink)  
Antiguo 18/01/2008, 11:54
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: cargar onchange en otro select con funcion java

josimapi, lo que ocurre es que el codigo JSP se ejecuta en el servidor ANTES de enviar el HTML al navegador, el navegador lo interpreta, lo pinta y el usuario hace su eleccion en el combobox. Entonces, se ejecuta el codigo en JavaScript y por tanto es imposible que JavaScript llame al codigo JSP que estaba en otra maquina y se acabó de ejecutar antes en el tiempo.

Si no tienes que poder actualizar el combo relacionado sin refrescar la pagina entonces no te queda más remedio que usar una de estas opciones:
.- O precargar todas las posibles opciones del combobox relacionado en objetos JavaScript y en el evento onchange cargar las adecuadas. Sólo es fáctible si el numero de opciones posibles es limitado.

.- O usar AJAX para realizar la peticion a código en el servidor que accedera a la BDD y te devolvera un resultado que, desde JavaScript, has de interpretar para rellenar el combobox relacionado.

S!
  #12 (permalink)  
Antiguo 18/01/2008, 12:47
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: cargar onchange en otro select con funcion java

bueno greeneyed te comento que la primera no la voy poder realizar ya que depende de lo que se seleccione todo es bd y voy a volver al mismo problema, voy a tener q intentar usar ajax (del cual no tengo la mas minima idea), gracias de todos modos
  #13 (permalink)  
Antiguo 18/01/2008, 17:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: cargar onchange en otro select con funcion java

Busca AJAX + Combobox y luego juntas el primero con el segundo a traves de eventos. Ahora mismo no tengo ningun ejemplo, yo el que hice era con campos de texto y autocompletar, no combos.

S!
  #14 (permalink)  
Antiguo 21/01/2008, 07:00
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: cargar onchange en otro select con funcion java

muchas gracias greeneyed lo buscare
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:00.