Reset Form after Submission

0

Good morning, I have a submission form, but the data stays on the inputs so I click to send ... how to reset the forms?

Follow the code

<?php
   header('Content-type: text/html; charset=utf-8');
   define('SERVIDOR', '[email protected]');
   define('DESTINO', '[email protected]');
   define('SITE', 'Meu Site');

   if (isset($_POST)):
       $nome    = (isset($_POST['contatoNome']))? $_POST['contatoNome']: '';
       $email   = (isset($_POST['contatoEmail']))? $_POST['contatoEmail']: '';
       $msg     = (isset($_POST['contatoMensagem']))? $_POST['contatoMensagem']: '';

// Valida se foram preenchidos todos os campos
if (empty($nome) || empty($email) || empty($msg)):
    $array  = array('tipo' => 'alert alert-danger', 'mensagem' => 'Preencher todo os campos obrigatórios(*)!');
    echo json_encode($array);
else:

    if (empty($assunto)):
        $assunto = "Contato enviado pelo site " . SITE;
    endif;

    // Monta a mensagem do email
    $mensagem = "Contato enviado pelo site ".SITE."\n";
    $mensagem .= "**********************************************************\n";
    $mensagem .= "Nome do Contato: ".$nome."\n";
    $mensagem .= "E-mail do Contato: ".$email."\n";
    $mensagem .= "**********************************************************\n";
    $mensagem .= "Mensagem: \n".$msg."\n";

    // Envia o e-mail e captura o retorno
    $retorno = EnviaEmail(DESTINO, $assunto, $mensagem);

    // Conforme o retorno da função exibe a mensagem para o usuário
    if ($retorno):
        $array  = array('tipo' => 'alert alert-success', 'msgContato' => 'Sua mensagem foi enviada com sucesso!');
        echo json_encode($array);
    else:
        $array  = array('tipo' => 'alert alert-danger', 'msgContato' => 'Infelizmente houve um erro ao enviar sua mensagem!');
        echo json_encode($array);
    endif;

endif;
endif;

// Função para envio de e-mail usando a função nativa do PHP mail()
function EnviaEmail($para, $assunto, $mensagem){

$headers = "From: ".SERVIDOR."\n";
$headers .= "Reply-To: $para\n";
$headers .= "Subject: $assunto\n";
$headers .= "Return-Path: ".SERVIDOR."\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-Priority: 3\n";
$headers .= "Content-Type: text/html; charset=UTF-8\n";

$retorno = mail($para, $assunto, nl2br($mensagem), $headers);
return $retorno;
}

Form

<form method="post" action="" id="formContato">
  <div id="msgContato" class=""></div>
    <div class="row 50%">
      <div class="6u 12u(mobile)">
       <input type="text" name="contatoNome" id="contatoNome" placeholder="Nome" required />
      </div>
      <div class="6u 12u(mobile)">
        <input type="text" name="contatoEmail" id="contatoEmail" placeholder="Email" required />
      </div>
    </div>
    <div class="row 50%">
        <div class="12u">
        <textarea name="contatoMensagem" id="contatoMensagem" placeholder="Mensagem" rows="4" required></textarea>
        </div>
    </div>
    <div class="row">
        <div class="12u">
            <ul class="actions">
                <li><input type="submit" name="contatoEnvia" class="style1" value="Enviar" /></li>                                                      
            </ul>
        </div>
    </div>
</form>
    
asked by anonymous 10.04.2018 / 14:43

2 answers

0

You can use the% JavaScript function :

function submitForm() {
   var form = document.getElementById('form');

   form.reset();
   
   return false;
}
<form id="form">
  <input type="text" />
  <input type="text" />
  
  <input type="button" value="Submit" onclick="submitForm()">
</form>
    
10.04.2018 / 14:56
0

Good morning, if you have Hiddens only the javascript reset will not work, you will have to create a backend function to clean all the Hiddens with this you enjoy and already clean the fields without the need to call the reset.

    
10.04.2018 / 15:36