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

[SOLUCIONADO] Enviar datos de una caja de texto creada con javascript a una pagina JSP

Estas en el tema de Enviar datos de una caja de texto creada con javascript a una pagina JSP en el foro de Java en Foros del Web. Hola amigos buenos días. Actualmente estoy creando un formulario para registrar usuarios, el cual tiene una parte en la cual a traves de un boton ...
  #1 (permalink)  
Antiguo 28/01/2015, 23:41
 
Fecha de Ingreso: diciembre-2012
Ubicación: Lima
Mensajes: 37
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Enviar datos de una caja de texto creada con javascript a una pagina JSP

Hola amigos buenos días.

Actualmente estoy creando un formulario para registrar usuarios, el cual tiene una parte en la cual a traves de un boton y utilizando javascript creo cajas de texto donde se ingresan números telefonicos. Bueno al final del formulario hay un boton enviar el cual al darle click deberia de enviar los datos del formulario incluido los valores de las cajas de texto creadas con javascript al server jsp para que los procese y posteriormente lo grabe en una base de datos, lo que sucede es que utilizando el metodo "get" veo que se pasan las variables definidas en en el formulario de manera estatica pero no se como pasar las cajas de texto creadas con javascript. No se si me podrian dar alguna idea.

Aqui pongo el codigo que actualmente e estado creando:

Código Java:
Ver original
  1. <%@page import="java.text.ParseException"%>
  2. <%@page import="java.text.SimpleDateFormat"%>
  3. <%@page import="java.sql.Date"%>
  4. <%@page contentType="text/html" pageEncoding="UTF-8"%>
  5. <%@page import="pkgAplicaciones.grabarProfesores"%>
  6. <!DOCTYPE html>
  7. <html>
  8.     <head>
  9.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  10.         <title>Mant. Prof</title>
  11.        
  12.         <script>
  13.  
  14.     function Mkbtn1() {
  15.         var tabla = document.getElementById("telefonos");
  16.  
  17.         var etqtelefono = document.createElement("label");
  18.             etqtelefono.setAttribute("form","ntelefonos");
  19.             etqtelefono.innerHTML = "N. Telefonico: ";
  20.  
  21.         var saltolinea1 = document.createElement("br");
  22.         var saltolinea2 = document.createElement("br");
  23.  
  24.         var txtnumero = document.createElement("input");
  25.             txtnumero.setAttribute("type","text");
  26.             txtnumero.setAttribute("maxlength",10);
  27.  
  28.         var btneliminar = document.createElement("input");
  29.             btneliminar.setAttribute("type","button")
  30.             btneliminar.setAttribute("value","borrar")
  31.             btneliminar.setAttribute("id","btnelimina")
  32.             btneliminar.addEventListener('click',function borra(){
  33.                 telefonos.removeChild(etqtelefono)
  34.                 telefonos.removeChild(saltolinea1)
  35.                 telefonos.removeChild(saltolinea2)
  36.                 telefonos.removeChild(txtnumero)
  37.                 telefonos.removeChild(espacioblank)
  38.                 telefonos.removeChild(btneliminar)})
  39.  
  40.         var espacioblank = document.createTextNode("    ");
  41.  
  42.     tabla.appendChild(etqtelefono);
  43.     tabla.appendChild(txtnumero);
  44.     tabla.appendChild(espacioblank);
  45.     tabla.appendChild(btneliminar);
  46.     tabla.appendChild(saltolinea1);
  47.     tabla.appendChild(saltolinea2);
  48.  
  49. }
  50.  
  51.         function Mkbtn2() {
  52.         var tabla = document.getElementById("correos");
  53.  
  54.         var etqcorreo = document.createElement("label");
  55.             etqcorreo.setAttribute("form","ntelefonos");
  56.             etqcorreo.innerHTML = "Correo : ";
  57.  
  58.         var saltolinea1 = document.createElement("br");
  59.         var saltolinea2 = document.createElement("br");
  60.  
  61.         var txtcorreo = document.createElement("input");
  62.             txtcorreo.setAttribute("type","text");
  63.             txtcorreo.setAttribute("maxlength",150);
  64.  
  65.         var btneliminar = document.createElement("input");
  66.             btneliminar.setAttribute("type","button")
  67.             btneliminar.setAttribute("value","borrar")
  68.             btneliminar.setAttribute("id","btnelimina")
  69.             btneliminar.addEventListener('click',function borra(){
  70.                 correos.removeChild(etqcorreo)
  71.                 correos.removeChild(saltolinea1)
  72.                 correos.removeChild(saltolinea2)
  73.                 correos.removeChild(txtcorreo)
  74.                 correos.removeChild(espacioblank)
  75.                 correos.removeChild(btneliminar)})
  76.  
  77.         var espacioblank = document.createTextNode("    ");
  78.  
  79.     tabla.appendChild(etqcorreo);
  80.     tabla.appendChild(txtcorreo);
  81.     tabla.appendChild(espacioblank);
  82.     tabla.appendChild(btneliminar);
  83.     tabla.appendChild(saltolinea1);
  84.     tabla.appendChild(saltolinea2);
  85.  
  86. }
  87.  
  88.     </script>
  89.  
  90. </head>
  91.     <body>
  92.        
  93.     <form id="teacher" method="get" action="profesores.jsp">
  94.         <fieldset>
  95.             <label for="appaterno">Apellido Paterno: </label>
  96.             <input type="text" name="appaterno">
  97.             <br>
  98.             <br>
  99.             <label form="apmaterno">Apellido Materno: </label>
  100.             <input type="text" name="apmaterno">
  101.             <br>
  102.             <br>
  103.             <label form="nombres">Nombres: </label>
  104.             <input type="text" name="nombres">
  105.             <br>
  106.             <br>
  107.             <label form="fecha">Fecha: </label>
  108.             <input type="text" name="fecha" placeholder="year-month-day">
  109.             <br>
  110.             <br>
  111.             <label form="direccion">Direccion: </label>
  112.             <input type="text" name="direccion">
  113.             <br>
  114.             <br>
  115.             <label form="referencia">Referencia: </label>
  116.             <input type="text" name="referencia">
  117.             <br>
  118.                         <br>
  119.             <fieldset>
  120.                 <label form="genero">Genero: </label>
  121.                 <input type="radio" name="genero" value="M">Masculino</input>
  122.                 <input type="radio" name="genero" value="F">Femenino</input>
  123.             </fieldset>
  124.             <br>
  125.             <fieldset>
  126.                 <label form="estado">Estado: </label>
  127.                 <input type="radio" name="estado" value="S">Soltero(a)</input>
  128.                 <input type="radio" name="estado" value="C">Casado(a)</input>
  129.                 <input type="radio" name="estado" value="V">Viudo(a)</input>
  130.             </fieldset>
  131.                         <br>
  132.                         <br>
  133.                         <input type="button" onClick="Mkbtn1()" value="Agregar Numeros">
  134.                         <br>
  135.                         <fieldset id="telefonos"></fieldset>
  136.                         <br>
  137.                         <br>
  138.                         <input type="button" onClick="Mkbtn2()" value="Agregar Correos">
  139.                         <br>
  140.                         <fieldset id="correos"></fieldset>
  141.                         <br>
  142.                         <br>
  143.                         <input type="submit" value="Enviar">
  144.         </fieldset>
  145.     </form>
  146.        
  147.         <%
  148.         String vfappaterno = request.getParameter("appaterno");
  149.         String vfapmaterno = request.getParameter("apmaterno");
  150.         String vfnombres = request.getParameter("nombres");
  151.         String vffecha = request.getParameter("fecha");
  152.         String vfdireccion = request.getParameter("direccion");
  153.         String vfreferencia = request.getParameter("referencia");
  154.         String vfgenero = request.getParameter("genero");
  155.         String vfestado = request.getParameter("estado");
  156.        
  157.         try{
  158.         java.sql.Date vffechac = java.sql.Date.valueOf(vffecha);
  159.        
  160.         grabarProfesores grabando = new grabarProfesores();
  161.        
  162.         grabando.grabarProfes(vfappaterno, vfapmaterno, vfnombres, vffechac, vfdireccion, vfreferencia, vfgenero, vfestado);
  163.        
  164.         out.println("Cadena de texto guardada");
  165.        
  166.         } catch (Exception e){
  167.        
  168.         e.printStackTrace();
  169.         }
  170.        
  171.            
  172.         %>
  173.     </body>
  174. </html>

Obs: espero el post este creado en el grupo correcto, disculpen si no es asi.
__________________
**********
I can do it !!!
**********
  #2 (permalink)  
Antiguo 29/01/2015, 01:40
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Enviar datos de una caja de texto creada con javascript a una pagina JSP

Buenas,

Los campos creados dinamicamente se envian por formulario de la misma manera que el resto. Lo que pasa es que no les estas dando un nombre:

var txtnumero = document.createElement("input");
txtnumero.setAttribute("type","text");
txtnumero.setAttribute("maxlength",10);
txtnumero.setAttribute("name", "numTelefono");

[...]

var txtcorreo = document.createElement("input");
txtcorreo.setAttribute("type","text");
txtcorreo.setAttribute("maxlength",150);
txtcorreo.setAttribute("name", "dirCorreo");


Luego para recoger los valores:

Código Java:
Ver original
  1. String vfTelefono = request.getParameter("numTelefono");
  2. String vfCorreo = request.getParameter("dirCorreo");

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 29/01/2015, 15:29
 
Fecha de Ingreso: diciembre-2012
Ubicación: Lima
Mensajes: 37
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Enviar datos de una caja de texto creada con javascript a una pagina JSP

Profesor_Falken -- muchas gracias por el dato, es correcto ahora si puedo enviar lo capturado en las cajas de texto creadas utilizando javascript..

Lo que ahora sucede es que como se puede ver en el codigo, el boton crea las caja de texto que yo desee por ejemplo si deseo agregar 5 numeros telefonicos creo 5 cajas de texto ingreso los numeros y despues le doy en enviar.. pero lo que ahi sucede es que solo me graba en la base de datos el numero de la primera caja de texto. E estado revisando la cadena que se manda al servidor por el metodo "get" y veo que todos los numeros se mandan con el mismo nombre de variable por lo cual pienso que por ahi estaria el problema... Alguna sugerencia de como podria manejar esta parte?
__________________
**********
I can do it !!!
**********
  #4 (permalink)  
Antiguo 29/01/2015, 16:49
 
Fecha de Ingreso: diciembre-2012
Ubicación: Lima
Mensajes: 37
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Enviar datos de una caja de texto creada con javascript a una pagina JSP

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Los campos creados dinamicamente se envian por formulario de la misma manera que el resto. Lo que pasa es que no les estas dando un nombre:

var txtnumero = document.createElement("input");
txtnumero.setAttribute("type","text");
txtnumero.setAttribute("maxlength",10);
txtnumero.setAttribute("name", "numTelefono");

[...]

var txtcorreo = document.createElement("input");
txtcorreo.setAttribute("type","text");
txtcorreo.setAttribute("maxlength",150);
txtcorreo.setAttribute("name", "dirCorreo");


Luego para recoger los valores:

Código Java:
Ver original
  1. String vfTelefono = request.getParameter("numTelefono");
  2. String vfCorreo = request.getParameter("dirCorreo");

Un saludo
Profesor_Falken -- muchas gracias por el dato, es correcto ahora si puedo enviar lo capturado en las cajas de texto creadas utilizando javascript..

Lo que ahora sucede es que como se puede ver en el codigo, el boton crea las caja de texto que yo desee por ejemplo si deseo agregar 5 numeros telefonicos creo 5 cajas de texto ingreso los numeros y despues le doy en enviar.. pero lo que ahi sucede es que solo me graba en la base de datos el numero de la primera caja de texto. E estado revisando la cadena que se manda al servidor por el metodo "get" y veo que todos los numeros se mandan con el mismo nombre de variable por lo cual pienso que por ahi estaria el problema... Alguna sugerencia de como podria manejar esta parte?
__________________
**********
I can do it !!!
**********
  #5 (permalink)  
Antiguo 30/01/2015, 03:02
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Enviar datos de una caja de texto creada con javascript a una pagina JSP

Buenas,

Lo que te pasa es normal y un problema muy comun (sobre todo cuando se envian datos de tablas). Si envias varias variables con el mismo nombre obviamente solo recogera el valor de la ultima.

Lo normal es que utilices un indice. Deberas crear un campo de formulario "hidden" con el numero de telefonos a enviar y despues nombrar los telefonos de la forma "numTelefono_" + index.

Posteriormente desde Java sera facil recuperar los valores.

Código Java:
Ver original
  1. int numTelefonos  = Integer.parseInt(request.getParameter("numTelefonos"));
  2. String[] telefonos = new String[numTelefonos];
  3. for (int i = 0; i<numTelefonos; i++) {
  4.     telefonos[i] = request.getParameter("numTelefono_" + i);
  5.   [...]    
  6. }
  7. [...]


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #6 (permalink)  
Antiguo 01/02/2015, 21:30
 
Fecha de Ingreso: diciembre-2012
Ubicación: Lima
Mensajes: 37
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Enviar datos de una caja de texto creada con javascript a una pagina JSP

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Lo que te pasa es normal y un problema muy comun (sobre todo cuando se envian datos de tablas). Si envias varias variables con el mismo nombre obviamente solo recogera el valor de la ultima.

Lo normal es que utilices un indice. Deberas crear un campo de formulario "hidden" con el numero de telefonos a enviar y despues nombrar los telefonos de la forma "numTelefono_" + index.

Posteriormente desde Java sera facil recuperar los valores.

Código Java:
Ver original
  1. int numTelefonos  = Integer.parseInt(request.getParameter("numTelefonos"));
  2. String[] telefonos = new String[numTelefonos];
  3. for (int i = 0; i<numTelefonos; i++) {
  4.     telefonos[i] = request.getParameter("numTelefono_" + i);
  5.   [...]    
  6. }
  7. [...]


Un saludo
Gracias Profe!!.. ahora ya logre implementar la parte del proyecto que estava implementando. Saludos.
__________________
**********
I can do it !!!
**********

Etiquetas: javascript, jsp
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 08:30.