Botão + para adicionar campos ao Formulário (JavaScript, HTML ou PHP)
33 respostas
L
LucasAdri07
Olá pessoal, estou com o seguinte problema e gostaria de saber se alguem pode me ajudar:
Tenho dentro de um formulário, o local para cadastro de passageiros de uma viagem.
Os campos para o cliente cadastrar já estão ok, o que eu preciso é criar um botão “+” para que quando ele clique nesse botão sejam criados mais campos para cadastro de um acompanhante para a viagem.
Então toda vez que ele clicar no “+” será adicionado um acompanhante e seram criados mais campos para cadastro dos dados desse acompanhante, exemplo: Nome, Endereço, Telefone, CPF, RG, Passaporte… etc.
Alguem conhece algo que possa me ajudar? Pode ser em PHP ou JavaScript mesmo.
Se fosse você, criaria uma combo com um número de acompanhantes que serão cadastrados. Quando o usuário ecolher a quantidade, iria utilizar o JS para liberar os campos já definidos na página. Os mesmos estariam ocultos. Somente depois da escolha, liberaria os campos com JS. Já fiz várias aplicações utlizando JS e CSS com a propriedade display.
Nesse caso os campos já estariam criados, o sistema só iria liberar de acordo com a escolha do usuário. No caso de dois acompanhantes, iria liberar dois paineis com as informações dos mesmos.
Lembrando que essa é só uma ideía, com JS você com certeza pode fazer muita coisa.
Abraço.
L
LucasAdri07
alberthy:
Entendi o que você quer fazer.
Se fosse você, criaria uma combo com um número de acompanhantes que serão cadastrados. Quando o usuário ecolher a quantidade, iria utilizar o JS para liberar os campos já definidos na página. Os mesmos estariam ocultos. Somente depois da escolha, liberaria os campos com JS. Já fiz várias aplicações utlizando JS e CSS com a propriedade display.
Nesse caso os campos já estariam criados, o sistema só iria liberar de acordo com a escolha do usuário. No caso de dois acompanhantes, iria liberar dois paineis com as informações dos mesmos.
Lembrando que essa é só uma ideía, com JS você com certeza pode fazer muita coisa.
Abraço.
Certo, com essa opção do display ele oculta os campos certo? Isso vai mecher na tabulação da página? Exemplo, ficará um espaço vazio no formulário com esses campos ocultos ou só ao liberar eles havera uma quebra de linhas do conteudo abaixo desses campos para exibi-los?
A
alberthy
[b]Ok.
Não me lembro muito bem no caso de usar só o HTML e JS ou PHP no caso, acho que fica o espaço sim.
Mas você pode criar uma DIV do lado direito da página com os painéis de cada acompanhante, não deixando assim, os espaços no formulário.
Do lado direito da página é local que mais sobra espaço.
De qualquer forma tente fazer. Já é mais um aprendizado. Pode ser que você tenha outra idéia que não tenho no momento. Assim que se aprende.
Abraço.[/b]
L
LucasAdri07
alberthy:
[b]Ok.
Não me lembro muito bem no caso de usar só o HTML e JS ou PHP no caso, acho que fica o espaço sim.
Mas você pode criar uma DIV do lado direito da página com os painéis de cada acompanhante, não deixando assim, os espaços no formulário.
Do lado direito da página é local que mais sobra espaço.
De qualquer forma tente fazer. Já é mais um aprendizado. Pode ser que você tenha outra idéia que não tenho no momento. Assim que se aprende.
Abraço.[/b]
Consegui usar ja o display.
O único problema é que teria que gerar um botão pra cada acompanhante que fosse gerado.
P
perdeu
use essa funções para clonar a div e td os elemento filhos.
Só tenho uma dúvida, na hora de passar pro banco de dados o valor desses textbox, vai ter problema o campo ser clonado?
Grato, Lucas
A
alberthy
[b]No caso de cada botão para os acompanhantes você pode criar somente um botão mas com um controle. Esse controle você terá que fazer de alguma maneira.
Abraço.[/b]
P
perdeu
não tem problema pq esses campos vão como um array.
vc esta usando php?
o botão ‘+’ e ‘-’ estão como imagem, no exemplo.
L
LucasAdri07
perdeu:
não tem problema pq esses campos vão como um array.
vc esta usando php?
o botão ‘+’ e ‘-’ estão como imagem, no exemplo.
Estou sim.
Na verdade o banco de dados não está criado ainda, está ficando pronto o layout.
Vou usar PHP + MySQL.
O botão ‘+’ e ‘-’ eu acertei já, passei pra receber o value e não o type.
Cara, que tal você usar uma framework JS para tratar disso? Você faz isso com muita simplicidade, além de trabalhar com um conceito MVVM no Javascript.
Dê uma olhada no Knockout.js e no AngularJS, as duas que eu mais gosto. Talvez te interesse, pois acho muito produtivo o uso desse tipo de framework (eu uso AngularJS, normalmente, mas o Knockout.js também é fantástico!). Com elas, você cria seus objetos em um escopo da sua página, e pode fazer essa sua “criação de uma nova linha” bem simples, apenas adicionando um objeto no array do escopo e a View já reconhece isso!