Jump to content
williamsouzat

Como Direcionar o resultado do formulário para a mesma seção que o form se encontra?

Recommended Posts

Galera, é o seguinte.

Estou criando meu site todo em ancoras(na verdade só falta isso para terminar).  Inicio, sobre, Serviços, e Contato. Quando clico em cada link do menu principal, esse link me encaminha para o respectivo local dentro da página, sendo assim, clicando em contato eu desco o site inteiro até a ultima seção. Nesta Seção eu criei um formulário, com os campos: Nome, email, Telefone, Cidade e mensagem, e abaixo eu coloquei o botão enviar.

No arquivo php eu recebo os dados, encaminho ao meu email, e redireciono para a pagina de obrigado. Neste caso, quando eu clico no botão de submit, este botão me envia o email contendo os dados e abre uma pagina diferente da que estou com a mensagem obrigado.

O que eu quero é: Que quando eu clicar no botão submit, essa mensagem de obrigado apareça no mesmo local que eu estou na página principal. Ou seja, clicar no botão enviar, o formulário sumir e no lugar dele aparecer uma mensagem de obrigado, sem atualizar o site principal que eu estou.

Segue codigo HTML:

<form action="enviacontato.php" class="form-contact" name="form" method="post" tabindex="1">  						
	<input type="text" class="form-contact-input" name="nome" placeholder="Nome" required />  
	<input type="email" class="form-contact-input" name="email" placeholder="E-mail" required />
	<input type="tel" class="form-contact-input-menor" maxlength="15" id="telefone" name="telefone" placeholder="Telefone" required />
	<input type="text" class="form-contact-input-menor" name="cidade" placeholder="cidade" />
	<textarea class="form-contact-textarea" name="mensagem" placeholder="Deixe uma mensagem" required></textarea> 
  	<button type="submit" class="form-contact-button">Enviar</button>
</form>

Segue o Código PHP:

<?
$destinatario = "email@email.com";

$nome = $_REQUEST['nome'];
$email = $_REQUEST['email'];
$telefone = $_REQUEST['telefone'];
$cidade = $_REQUEST['cidade'];
$mensagem = $_REQUEST['mensagem'];
$assunto = "Contato Site";

$body = "===================================" . "\n";
$body = $body . "FALE CONOSCO - FORMULÁRIO DO SITE" . "\n";
$body = $body . "===================================" . "\n\n";
$body = $body . "Nome: " . $nome . "\n";
$body = $body . "Email: " . $email . "\n";
$body = $body . "Telefone: " . $telefone . "\n";
$body = $body . "Cidade: " . $cidade . "\n";
$body = $body . "Mensagem: " . $mensagem . "\n\n";
$body = $body . "===================================" . "\n";

mail($destinatario, $assunto , $body, "From: $email\r\n");

header("location:obrigado.html");
?>

Então é isso galera, espero que me ajudem, Vale =D

Share this post


Link to post
Share on other sites

@williamsouzat

  1. Para enviar um formulário e permanecer no topo da mesma página onde ele se encontra o atributo action deve ser vazio:
    <form action=" " ... >   
     ou se você quiser que o resultado de submit apareça em outro lugar da página use uma âncora na página e o action deverá apontar para a âncora:
    <form action="#nome_qualquer " ... >   
    Veja o exemplo mostrado a seguir:
    <div id="aqui"><p>Escreva aqui a mensagem de obrigado</p></div>
    <form action="#aqui" ...>
  2. Uma vez que action será para a mesma página coloque o script enviacontato.php também na mesma página (p. ex. antes da tag de fechamento </body>. Retire a linha: header("location:obrigado.html");
  3. Use javaScript e CSS para esconder/mostrar o formulário e a mensagem.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By violin101
      Caros amigos, membros do grupo, saudações...
       
      Se postei minha dúvida na opção errada peço desculpa.
       
      Estou com uma pequena dúvida.
       
      Quando cadastro usuários na MySql utilizo PASSWORD_HASH para criptografar a Senha.
       
      Estou montando uma rotina, onde o usuário que esqueceu sua senha o sistema envia por e-mail a sua senha, mas me deparei com um pequeno problema.
       
      a senha criada pelo usuário, como por exemplo: 12345678 usando o PASSWORD_HASH fica desta forma: $2y$10$ukBckA5D2aSApHwv/GOKi.P/drP.jwAHOK/9SmWIgRxLUE.x9z.ZK
       
      Quando tento enviar a senha para o usuário vai conforme acima, preciso enviar apenas 12345678. Como consigo descriptografar o PASSWORD_HASH ?
       
      Grato,
       
      Cesar
    • By elisandrodceza
      Alguma ideia para pesquisar os $id recebidos por get em um arquivo diferente ? como se percebe no código funcional a baixo, os $id estão duplicados para funções diferente. Quero adicionar eles em outro arquivo para uma melhor organização com as variáveis $id e $client,  mas de uma maneira que possa pesquisar tanto qual é a $id e o $client para ser informado por email quando o client ler o qrcode, quanto se a $id está na lista para ser redirecionado.
       
       
      ARQUIVO auth_code.php
       
      <?php
          $id = $_GET['id'];
          $ip = $_SERVER['REMOTE_ADDR'];
          $browser = $_SERVER['HTTP_USER_AGENT'];
          $to = "suporte@eatech.inf.br";
          $success = false;

              if ($id == '2623F52846F8A03DA4ADFA9392486807') $client = "Card Contato";
              if ($id == '2BDBDDA17456A1060E156BE7A487FC') $client = "Client 1";
              if ($id == 'E7EA229948A4997C2F72219D6A2764') $client = "Client 2";
              if ($id == '07118879907903166B2C3BE7408EFD') $client = "Client 3";
              if ($id == 'FED09C7CC40ACD77A0BDEA57E894A3') $client = "Client 4";
              if ($id == 'C042D3187B52E87D6E6196567101EF') $client = "Client 5";
              if ($id == '7DCD0215BEC8AF587AD886E407A485') $client = "Client 6";
       
          $messagem = "Cliente: $client<br><br>ID: $id<br><br>IP: $ip<br><br>Browser: $browser"; 
          $assunto = "qrCode digitalizado";
          $headers = "MIME-Version: 1.0\n";
          $headers .= "Content-type: text/html; charset=iso-8859-1\n";
          $headers .= "From: $client\n";
          
          $success = mail($to, $assunto, $messagem, $headers);
          
          if ($id == '2623F52846F8A03DA4ADFA9392486807')
              { header('Location: download/contato.vcf');}
       
          else
              if (

              $id == '2BDBDDA17456A1060E156BE7A487FC' # Client 1
              or $id == 'E7EA229948A4997C2F72219D6A2764' # Client 2
              or $id == '07118879907903166B2C3BE7408EFD' # Client 3
              or $id == 'FED09C7CC40ACD77A0BDEA57E894A3' # Client 4
              or $id == 'C042D3187B52E87D6E6196567101EF' # Client 5
              or $id == '7DCD0215BEC8AF587AD886E407A485' # Client 6
              )
              { header('Location: download/index.php?id=' . $id. '.pdf');}
       
          else
              { echo "<script>alert('Este qrCode ainda não está cadastrado no sistema, tente novamente mais tarde!');history.go(-1) </script>";}
      ?>
    • By rfael023
      Bom dia, Pessoal.

      Sou iniciante em PHP e estou trabalhando na integração de uma API. Estou tendo um pouco de dificuldade em índices de um array, segue abaixo o trecho do código:


       
      1 2 3 4 5 6 7 foreach ($Lista as $SMS) {           foreach ($SMS as $key => $value) {                   echo "{$key} : {$value}\n";         } }

      O resultado é o seguinte:

      telefone : 5519333333333
      id : 921

      telefone : 5519344444444
      id : 922

      telefone : 5519555555555
      id : 923

      Ou seja, eu tenho vários arrays com 2 posições dentro de um único array.

      Eu preciso jogar o ID e o Telefone em variáveis, porém ele não está entendendo meu índice:
       
      1 2 3 4 $sms->setTo($SMS['telefone']); echo $sms->getTo(); $sms->setId($SMS['id']); echo $sms->getId();

      Resultado:

      5,52E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,52E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,51198E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,51198E+12
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,53176E+11
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42
      5,53176E+11
      Notice: Undefined index: id in C:\xampp1\htdocs\SMSM\exemplos\envio_multiplo_teste.php on line 42

      Alguém consegue me ajudar?

      Agradeço, desde já!
    • By z101
      Sou iniciante, nunca usei PHP na vida e preciso concluir uma tabela de distribuição de frequencia e o polígono de um array, o pouco que vi é muito confuso, alguém aqui já teve que fazer isso antes? 
       
       
    • By xdxddxd
      ao clicar em um botão eu gostaria de exibir um confirm no site, mas eu gostaria de Mudar de "OK" Para "Home" e "Cancelar" para "Estoque".
      isso usando javascript puro, alguem pode me ajudar ?
      já agradeço de já.
      tem que usar algum plugin no site ou tem como fazer puro mesmo.
      se quiser deixar só um link com o tutorial eu já agradeço, porém não achei nenhum do jeito que eu quero no google.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.