Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vítor André

[Resolvido] Dar a mensagem do retorno do envio do e-mail na mesma

Recommended Posts

Pessoal, eu gostaria de ao enviar um e-mail pelo site, ao invés de dar a resposta para o usuário em uma nova página, que a resposta aparecesse na mesma div que "inclui" a página do formulário.

A estrutura é a seguinte:

--Página:

switch ($variavel){

 

case pagina 1:

include ('formulario.php');

 

e assim vai...

Só que no form o target sempre aponta para um outra página (que é a que faz o envio). Ok. Mas e a resposta para o usuário? Não pode ser exibida na mesma div do formulário? Puxa! Tem que dar!

Já pesquisei em tudo que é lugar o muitos dizem que não dá, mas os motivos não passam por todas as possibilidades...

 

E daí pessoal? Tem como fazer isso?

Obs.: já tentei no action="envia.php?$variavel=envia" mas não deu certo também...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, tanto faz... como der está bom. E se der de mais uma forma, melhor ainda!

assim

 

**************************

meio.php

 

switch ($link){

case "contato":
include('contato.php');
break;

e outros cses e includes...
}

**************************

 

contato.php

<form action="enviaemail.php" method="post">
CAMPOS DO FORMULÁRIO
</form>

 

**************************

 

enviaemail.php

$nome = $_POST["nome"];
$mensagem = $_POST["mensagem"];
etc, etc, etc...

global $email;
$enviou = mail("email@email.com", "$assunto","TEXTO DO E-MAIL", "From: $email <$nome>");

if ($enviou){
echo "Mensagem enviada";}
else{
echo "Não foi possível enviar a mensagem";}

 

********************************

 

 

As aberturas das tags PHP estão todas corretas, não escrevi aqui pra poupar tempo...

Se precisar mais coisas, me solicitem!!!

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo "Mensagem enviada";}

Ao invés disso, você pode fazer um redirecionamento, assim:

 

header('location: contato.php?sucesso=1');

 

Daí na página contato.php, você insere esse código, onde quer exibir:

if ((int)$_GET['sucesso']>0) {
   echo 'Mensagem enviada com sucesso!';
}

 

E no seu botão de submit, por segurança (anti-spam), deixe assim:

 

<input type="submit" value="Enviar" name="submit" <?php echo ((int)$_GET['sucesso']>0) ? 'disabled="disabled"' : NULL; ?> >

 

Isso vai desabilitar o botão, se a mensagem já tiver sido enviada.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá resolvido! Entendi o esquema. Se der refresh vai ser a mesma coisa pois a url será a mesma! Beleza!!! Obrigado pela força!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.