| |||
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?? |
| |||
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. |
| |||
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... |
| |||
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. |
| |||
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. |
| |||
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. |
| |||
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????? |
| |||
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... |
| |||
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... |
| |||
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! |
| |||
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 |
| |||
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! |