Como capturar campos de formulários dinâmicos em PHP
Ontem (30/01) eu estava num dilêma: tenho um grande formulário que é gerado dinamicamente, como vou capturá-lo?
Em formulários fixos, a coisa é fácil porque é só especificar em uma variável o nome do campo, por exemplo:
$campo = $_POST['campo'];
Mas, quando a coisa é gerada dinamicamente, os nomes também são gerados dinamicamente, então como capturá-los?
Eis que pedindo a ajuda do pessoal do grupo PHPFORTALEZA, consegui a solução.
Duas pessoas me responderam com duas dicas diferentes que simplesmente: CASARAM com o que eu precisava, então bastou unir o jôio, com o trigo.
Primeira dica:
Se seu formulário for gerado dinâmicamente, crie os nomes dos campos em forma de arrays, exemplo:
<input type="textfield" name="campo[nome]">
<input type="textfield" name="campo[idade]">
Agora crie o arquivo que para onde o seu formulário será submetido:
$dados = $_POST['campo']; // captura todos os campos em um array
Pronto, você já tem todos os dados em apenas um array, quer testar?
echo $dados['nome'];
echo $dados['idade'];
Ou que tal fazer um foreach e ler todos os valores de todos os campos de uma vez?
$keys = array_keys($dados); // retorna as chaves do array $dados no array $keys
foreach($keys as $k) {
echo $dados[$k];
}
Como se pode ver, de uma maneira simples, você resolve um "problemão". Muito obrigado a aos membros do PHPFORTALEZA.