1
I have a problem a few days, that with testing and research I’m not able to solve. My problem persists in a certain form send the data via AJAX to PHP treat and send an email, until then works without major problems. The additional is, when sending the data a message appears in the place in the form which I can also do.
The problem is: I can’t show the message and send the data by email. It’s like he’s doing something or other. Go to the main code below:
AJAX
$("#f_pre_cadastro").submit(function(e) {
var form_data = $(this).serialize(); // Pega os dados do FORM
var form_url = $(this).attr("action"); // Pega o ACTION
var form_method = $(this).attr("method").toUpperCase(); // POST ou GET
$.ajax({
url: form_url,
type: form_method,
data: form_data,
cache: false, // força as páginas solicitadas a não serem armazenada em cache
success: function(returnhtml){
if(returnhtml){
$("form").css({"display": "none"});
$('h2').html('Parabéns!');
$('p').html('Seus dados foram enviados com sucesso! <br> Aguarde nosso retorno por e-mail.');
}else{
window.alert('Erro!');
}
}
});
//e.preventDefault();
//e.stopPropagation();
return false;
});
PHP
if(isset($_POST["btnEnviar"]) && $_POST["nome_f"] != '' && isset($_POST["email_f"]) && $_POST["email_f"] != ''){
$nome_f = isset($_POST["nome_f"]) ? ucwords_improved(anti_injection($_POST["nome_f"])) : '';
$email_f = isset($_POST["email_f"]) ? anti_injection($_POST["email_f"]) : '';
$whatsapp = isset($_POST["whatsapp_f"]) ? anti_injection($_POST["whatsapp_f"]) : '';
$empresa = isset($_POST["empresa_f"]) ? anti_injection($_POST["empresa_f"]) : '';
$cpfCnpj = isset($_POST["cpfCnpj_f"]) ? anti_injection($_POST["cpfCnpj_f"]) : '';
$finalidade = isset($_POST["finalidade_f"]) ? anti_injection($_POST["finalidade_f"]) : '';
//envia email de solicitação de cadastro
$email_destinatario = '[email protected]';
$subject = 'Site - Novo Cadastro: ' . $nome_f;
$body = '
<p style="margin:10px 0; line-height:160%">
<br>Olá, Moisés !
<br><br>Você recebeu um novo e-mail de solicitação de cadastro!
<br><br>Nome: ' . $nome_f . '
<br><br>E-mail: ' . $email_f . '
<br><br>WhatsApp: ' . $whatsapp . '
<br><br>Empresa: ' . $empresa . '
<br><br>CPF/CNPJ: ' . $cpfCnpj . '
<br><br>Finalidade do Cadastro: ' . $finalidade . '
</p>';
$envioEmailSolicitacao = sendMail($nome_f, '[email protected]', $email_f, $email_destinatario, $subject, $body);
if($envioEmailSolicitacao){
$alerta = 'Seus dados foram enviados com sucesso!';
}else{
$alerta = 'Erro ao enviar e-mail. Tente novamente!';
}
}
HTML
<div class="section-block-parallax" id="comece-ja" style="background-image: url(<?php echo $config_base_path; ?>/img/cadastro.jpg);">
<!-- Gradient Overlay START -->
<div class="gradient-overlay"></div>
<!-- Gradient Overlay END -->
<div class="container">
<div class="section-heading center-holder white-color wow fadeInDown animated">
<h2>Cadastre-se</h2>
<p>Preencha o formulário abaixo para nossa equipe fazer uma pré-análise dos seus dados. <br> Se seu cadastro for aceito, você receberá um link por e-mail para prosseguir.</p>
<div class="section-heading-line"></div>
</div>
<div class="center-holder wow fadeInUp animated mt-50" data-wow-delay=".3s">
<form id="f_pre_cadastro" class="comment-form" method="post" action="<?php echo selfURL(); ?>">
<?php
if(isset($alerta)){
echo '<div class="row"><div class="col-sm-4 center-block"><p style="margin:0 0 20px 0; clear:both !important; color:#FFF"><strong>'. $alerta. '</strong></p></div></div> <script>window.alert("'. $alerta. '");</script>';
}
?>
<div class="row">
<div class="col-sm-4 center-block">
<label for="f_nome">Seu nome</label>
<input name="nome_f" id="f_nome" value="" required> <!-- 'f' é referente a finalidade do uso -->
</div>
</div>
<div class="row">
<div class="col-sm-4 center-block">
<label for="f_email">Seu e-mail</label>
<div class="alerta">
<input name="email_f" id="f_email" type="email" value="" maxlength="100" required>
<p class="msg_alerta" id="msg_email_alerta"></p>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 center-block">
<label for="f_whatsapp">Seu WhatsApp</label>
<div class="alerta">
<input name="whatsapp_f" id="f_whatsapp" type="" value="" maxlength="100" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 center-block">
<label for="f_empresa">Empresa</label>
<div class="alerta">
<input name="empresa_f" id="f_empresa" type="" value="" maxlength="100" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 center-block">
<label for="f_cpfCnpj">CPF/CNPJ</label>
<div class="alerta">
<input name="cpfCnpj_f" id="f_cpfCnpj" type="" value="" maxlength="100" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 center-block">
<label for="f_finalidade">Qual a finalidade do seu cadastro ?</label>
<div class="alerta">
<textarea style="margin-top: 0;" name="finalidade_f" id="f_finalidade" type="" value="" maxlength="100" required></textarea>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 center-block">
<button type="submit" name="btnEnviar" class="gradient-button button-sm" id="bt_submit">Enviar</button>
</div>
</div>
</form>
</div>
</div>
</div>
Note: I was wondering what the 'Return false' of AJAX by disabling the 'objective' of 'Submit', it does not send the data, but I could not think of a logic to send the data by email and show the message without problems.
If you fixed the problem, post the solution as the answer, explain what was wrong and show why the solution solved the problem.
– Woss