Reset Form after Upload

Asked

Viewed 155 times

0

Good morning, I have a shipping form, but the data is in 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>
  • I tested and works well, the email was sent to my mailbox ( see in https://i.stack.Imgur.com/zl1q0.png). After sending see how the page became https://i.stack.Imgur.com/4WCwR.png The data is not in the inputs, they are empty. I just found strange this $array = array('tipo' => .......

2 answers

0

You can use the function reset of Javascript:

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>

  • I’ll take the test and give you the feedback

  • The form code as is?

  • @Leocaracciolo updated the question and put the form

  • @Betinhosilva worked the reset()?

  • @Diegovieira it resets but does not send the data...

  • Tu ta sending this form with ajax?

Show 1 more comment

0

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

  • How would I do that? The above mentioned model didn’t work....

Browser other questions tagged

You are not signed in. Login or sign up in order to post.