> Faqs > Obtener datos de un form creado dinamicamente

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

Respuestas

Ponle un nombre de arreglo a cada textfield. Te explico con un poco de código: <span class="codigo"> 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! } </span> 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!

Ernesto Spiro