Obtener datos de un form creado dinamicamente

Amigos buenos dias, tengo el siguiente problema. Estoy trabajando con Ruby on Rails, pero creo q eso no hace al problema y la solucion...

La FAQ Obtener datos de un form creado dinamicamente tiene

Pertenece a la categoría:

Pregunta
Amigos buenos dias, tengo el siguiente problema.



Estoy trabajando con Ruby on Rails, pero creo q eso no hace al problema y la solucion seria independiente al lenguaje.


Resulta que tengo un formulario creado dinamicamente a partir de un array de objetos, basicamente se trata de recorrer el array y por cada iteracion se crea una nueva fila en una tabla con los datos del registro, y a su vez se agregan 2 textfields por fila.


Como puedo obtener esos campos del formulario que fueron creados dinamicamente al hacer el submit?


Se podria obtener el formulario de akguna manera y recorrer las filas de la tabla, y una vez dentro operar con los textfields?


Respuesta de Ernesto Spiro
Ponle un nombre de arreglo a cada textfield.

Te explico con un poco de código:

var tabla = document.getElementById('id_de_tabla'); //qué tabla le agregaré campos?

var arreglo_x = new Array("valor1", "valor2", "valor3"); //mi arreglo y algunos valores

var cuantos = arreglo_x.length; //numero de elementos en el arreglo

var auxiliar; //variable auxiliar

for (auxiliar=0; auxiliar < cuantos; auxiliar++) {

var fila = tabla.insertRow(auxiliar); //creo una fila

var celda = fila.insertCell(0); //Agrego 1 celda a la fila. Esto es porque en el ejemplo la tabla tendrá 'x' filas y 1 sola columna(celda).

celda.innerHTML = '<input type="text" name="textfield[]" id="textfield' + auxiliar + '" value="valor cualquiera"/>'; //Creo el input. Aquí es lo importante! ojo al atributo name!

}

Espero funcione el código, es javascript. No lo probé pero te deberá dar una idea.

El atributo name del input dice: textfield[] pudiera ser: lo_que_se_me_ocurra[]

Lo que pasa aqui es que cuando envías el formulario por método post puedes hacer lo siguiente:

echo $_POST[textfield][0]; //Esto imprimira el primer valor de los campos!!!

Es decir que al darle un nombre de arreglo, por lo menos en PHP lo recibes y tratas como arreglo.

Ahora tienes controlado qué variables estás mandando, cuántas y con qué valor.

Saludos y espero te sirva la respuesta!

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo