Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde a todos!
Antes de mais, desejo uma Boa Páscoa!
Tenho um ficheiro PHP, com 4 formulários. Um dos formulários aparece sempre, os outros 3 só aparecem se o utilizador clicar numa ( das 3 ) checkbox.
Tenho um botão no final deste ficheiro PHP, que chama o seguinte código Javascript:
function Processar(){
var LeituraGeral = document.getElementById ( 'leitura_geral' );
var PerguntaObjetiva = document.getElementById ( 'pergunta_objetiva' );
var PerguntaSituacao = document.getElementById ( 'pergunta_situacao' );
CalcularTotal();
document.getElementById('formulario_dados_gerais').submit();
if ( LeituraGeral.checked )
document.getElementById('formulario_leituras').submit();
if ( PerguntaObjetiva.checked )
document.getElementById('form_perguntas_objetivas').submit();
if ( PerguntaSituacao.checked )
document.getElementById('form_perguntas_situacao').submit();
}
Se uma determinada checkbox estiver selecionada - o que significa que o formulário é mostrado - pretendo fazer o Submit desse formulário.
No entanto, se a 1ª checkbox estiver selecionada ( "LeituraGeral" ), não é feito o submit do "formulário_dados_gerais". Para isso, faço, no ficheiro PHP:
if ( isset ( $_POST["email"] ) )
{
...
}
O código anterior vai ser chamado para o 1º formulário.
No entanto, se a 1ª checkbox estiver selecionada, só é executado o código PHP relativo a este formulário e não é executado o código relativo ao 1º formulário.
Também uso ISSET para chamar o 2º formulário:
if ( isset ( $_POST["vida_sentimental"] ) )
{
...
}
Parece que o ISSET não funciona - ou então estou a fazer mal -, pois ao ter a 1ª checkbox selecionada - que corresponde ao 2º formulário - não é executado o código do ISSET referente ao 1º formulário.
O que pretendo é, que quando estiver selecionada uma checkbox, seja feito o Submit do formulário respetivo.
Agradeço que me ajudem a resolver este problema!
Abraços do
Joaquim.
Gabriel,
Muito Obrigado pela sua resposta!
Agora, não sei como fazer o que pretendo, mas vou colocar noutro tópico.
Abraços do
Joaquim.
Joaquim, você pode organizar os inputs do seu formulário por arrays e tratar isso no teu script de backend.
No fim, você não precisa tratar o submit no front, apenas organize os inputs por seções no seguinte formato:
formulario_geral[input_a], formulario_geral[input_b], form_perguntas_objetivas[input_a]
Faça isso usando o atributo name dos seus inputs.
No backend, o PHP vai receber uma série de arrays contendo os dados, se preenchidos. Nesse script de backend você trata.
No fim, você até pode tirar as checkbox do teu form, pois isso será uma coisa tratada no backend.
Espero ter ajudado.
Fábio,
Muito Obrigado pela sua resposta!
No entanto, para o fórum ficar melhor organizado, vou colocar a pergunta noutro tópico.
Abraços do
Joaquim.
Isso aqui não funciona: