Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Asignar nombres a input text dinámicos (http://www.forosdelweb.com/f45/asignar-nombres-input-text-dinamicos-481093/)

nae 13/04/2007 05:11

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

nae 13/04/2007 05:38

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

GreenEyed 13/04/2007 08: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

nae 14/04/2007 03:04

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

GreenEyed 14/04/2007 05:00

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!

nae 15/04/2007 08:40

Re: Asignar nombres a input text dinámicos
 
Ok, gracias, ya lo comprendo, voy a ver cómo lo hago entonces.
Un saludo.


La zona horaria es GMT -6. Ahora son las 20:24.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.