Amigos, tenho o seguinte problema: estou trabalhando com Ruby on Rails, porém acho que isso não faz o problema e a solução seria independente da linguagem.
É que tenho um formulário criado dinamicamente a partir de um array de objetos, basicamente se trata de percorrer o array e por cada repetição se cria uma nova fila em uma tabela com os dados do registro, e por sua vez se agregam 2 textfields por fila.
Como posso obter esses campos do formulário que foram criados dinamicamente ao fazer o submit?
Poderia se obter o formulário de alguma maneira e percorrer as filas da tabela, e uma vez dentro operar com os textfields?
Coloque um nome de arranjo a cada textfield.
Vou explico com um pouco de código:
var tabla = document.getElementById('id_de_tabela'); //que tabela lhe agregarei campos?
var arranjo_x = new Array("valor1", "valor2", "valor3"); //meu arranjo e alguns valores
var quantos = arranjo_x.length; //numero de elementos no arranjo
var auxiliar; //variavel auxiliar
for (auxiliar=0; auxiliar < quantos; auxiliar++) {
var fila = tabela.insertRow(auxiliar); //crio uma fila
var celula = fila.insertCell(0); //Agrego 1 célula a fila. Isto é porque no exemplo a tabela terá 'x' filas e 1 só coluna(célula).
celula.innerHTML = '<input type="text" name="textfield[]" id="textfield' + auxiliar + '" value="valor qualquer"/>'; //Crio o input. Aqui é o importante! Atenção ao atributo name!
}
Espero que funcione o código, é Javascript. Não o provei, mas já dá pra ter uma idéia.
O atributo name do input diz: textfield[] poderia ser: o_que_quiser[]
O que acontece aqui é que quando se envia o formulário por método post pode-se fazer o seguinte:
echo $_POST[textfield][0]; //Isto imprimirá o primeiro valor dos campos!!!
Ou seja, que ao lhe dar um nome de arranjo, pelo menos em PHP você o recebe e trata como arranjo.
Com isso você terá controle de que variáveis está mandando, quantas e com que valor.
Saudações e espero que sirva a resposta!
Por Ernesto Spiro