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

Asignar nombres a input text dinámicos

Estas en el tema de Asignar nombres a input text dinámicos en el foro de Java en Foros del Web. Hola, estoy haciendo un página jsp donde se crean textfield de manera dinámica, al pulsar un botón cuando se está ejecutando, el usuario introducirá datos ...
  #1 (permalink)  
Antiguo 13/04/2007, 05:11
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Pregunta Asignar nombres a input text dinámicos

Hola,
estoy haciendo un página jsp donde se crean textfield de manera dinámica, al pulsar un botón cuando se está ejecutando, el usuario introducirá datos en ellos y yo los recojo en un servlet. Tengo una variable "cont" con el número de textfield introducidos dinámicamente. Necesito saber el nombre asignado a los textfiel para poder hacer request e introducir los datos en un vector "respuestas"

Código:
for (int i = 1; i < cont + 1; i++) { 
            textfield = request.getParameter("NOMBRE DEL TEXTFIELD") ;
            respuestas.addElement(textfield);
          }
Cuando genero los textfield intento asignarles yo un nombre, para eso utilizo el mismo contador puesto que no sé cuántos se van a generar, le asigno el nombre correspondiente a su número pasado a cadena

Código:
var num = <%=Integer.toString(cont)%>;
var cadtxt='<td><input type="text"  name=num value=""></td>'
Pues bien, esto no funciona, alguien sabe qué estoy haciendo mal o cómo podría resolver el problema.
Gracias
  #2 (permalink)  
Antiguo 13/04/2007, 05:38
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Re: Asignar nombres a input text dinámicos

Hola, soy yo otra vez, he probado asignando un nombre en concreto "txt1dina" y sí funciona

Código:
var cadtxt='<td><input type="text"  name="txt1dina" value=""></td>'
El problema es entonce cómo puedo construir una cadena en JSP a partir de una variable Java, que sería en contador de textfield: cont
  #3 (permalink)  
Antiguo 13/04/2007, 08:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Asignar nombres a input text dinámicos

¿Y por que no haces simplemente...?
Código:
<td><input type="text"  name="texfield_<%=num%>" value=""></td>
De todas formas, mejor pon un texto antes antes del numero (yo he puesto la cadena 'textfield_'), ya que en muchos lenguajes/protocolos, las variables no pueden empezar por un numero.

Saludos
  #4 (permalink)  
Antiguo 14/04/2007, 03:04
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Re: Asignar nombres a input text dinámicos

Gracias, lo estoy intentando de esa manera, me surge otro problemilla, en la página jsp al empezar declaro la variable cont
Código:
<%   
           //defino variabes
           int cont = 1; %>
Este contador lo inicializo en 1 porque la página tiene siempre dos casillas:textfield_0 y textfield_1

Luego tengo un botón que al pulsar incrementa las casillas de dos en dos con javascript, las casillas las voy metiendo en filas dentro de una tabla:

Código:
function addNewRow(){

var TABLE = document.getElementById("base");
...
var newRow = TABLE.insertRow(-1);
newRow.className = TROW.attributes['class'].value;
<% cont=cont+1; %> //introduzco la primera nueva casilla
var cadtxt='<td><input type="text"  name="textfield__<%=cont%>" value="<%=cont%>"></td>' ;
var newCell = newRow.insertCell(newRow.cells.length);
newCell.innerHTML = cadtxt;

<% cont=cont+1; %> //introduzco la segunda nueva casilla
var cadtxt='<td><input type="text"  name="textfield__<%=cont%>" value="<%=cont%>"></td>' ;
var newCell = newRow.insertCell(newRow.cells.length);
newCell.innerHTML = cadtxt;
Bueno, pues al ejecutar, la primera vez que pulso el boton va bien cont hace lo deseado, lo pongo en el txt en value para comprobar el valor que tiene, toma valor 2 y 3, pero la segunda vez que pulso vuelve a coger valor 2 y 3, creo que vuelve a irse a la declaración de la variable y se inicializa con valor 1He intentado pasar cont como parámetro en la función addNew() pero como cont es Java y addNew jsp, no sé cómo hacerlo.
Agradezco cualquier ayuda. Un saludo
  #5 (permalink)  
Antiguo 14/04/2007, 05:00
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Asignar nombres a input text dinámicos

Ahh, ya veo.

Es que estas mezclando dos cosas. El codigo que generas desde la JSP se genera UNA vez, antes de generar la pagina, y luego con el JavaScript estas modificando las cosas dinamicamente. Sin embargo, modificar el valor de las variables den JavaScript no afecta a las declaraciones que hiciste de las JSP, por eso te vuelven a coger el valor inicial.

Para que funcione, la asignacion de valores desde la JSP solo la tienes que hacer UNA vez, a partir de entonces todo tiene que ser JavaScript.

Para entenderlo, olvidate de que tienes JSP, genera la pagina "a mano" con un editor de HTML y cuando consigas que funcione así, entonces pasas a generar eso mismo desde JSP. Así seguro que no mezclas conceptos.

S!
  #6 (permalink)  
Antiguo 15/04/2007, 08:40
nae
 
Fecha de Ingreso: abril-2007
Mensajes: 37
Antigüedad: 17 años
Puntos: 1
Re: Asignar nombres a input text dinámicos

Ok, gracias, ya lo comprendo, voy a ver cómo lo hago entonces.
Un saludo.
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 16:10.