0
Friends, I am developing a script to send an email according to the choices of the users.
Below is the ajax that makes the upload:
$.ajax({
type: "POST",
url: "inc/enviar.php", /* endereço do script PHP */
async: true,
data: urlData, /* informa Url */
dataType: 'json',
success: function(data) { /* sucesso */
var json = jQuery.parseJSON(JSON.stringify(data));
window.location.replace(json);
console.log(json);
},
beforeSend: function() { /* antes de enviar */
$("#bt-normal").hide();
$("#bt-loading").show();
$(".popup").show();
}
});
And below I’m putting just a few main points of php:
<?php
header("Content-Type: application/json");
require_once('abreConexao.php');
require_once('PHPMailer/PHPMailerAutoload.php');
// pega os valores e armazena em variavel
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$estado = $_POST['estado'];
$id_loja = $_POST['loja'];
$destino = $_POST['destino'];
switch ($estado) {
case 1: $estado = "AC"; break;
case 5: $estado = "BA"; break;
case 6: $estado = "CE"; break;
case 7: $estado = "DF"; break;
case 8: $estado = "ES"; break;
case 10: $estado = "GO"; break;
case 11: $estado = "MA"; break;
case 12: $estado = "MT"; break;
case 14: $estado = "MG"; break;
case 15: $estado = "PA"; break;
case 17: $estado = "PR"; break;
case 18: $estado = "PE"; break;
case 20: $estado = "RJ"; break;
case 21: $estado = "RN"; break;
case 22: $estado = "RS"; break;
case 25: $estado = "SC"; break;
case 26: $estado = "SP"; break;
case 27: $estado = "SE"; break;
}
// faz a busca da loja no banco
$query = "SELECT * FROM lojas WHERE id = $id_loja";
$resultado = mysql_query($query);
$nun_rows = mysql_num_rows($resultado);
// armazena os dados da loja em variaveis
while ($linha = mysql_fetch_assoc($resultado)) {
$nome_loja = $linha['nome_loja'];
$email1_loja = $linha['email1'];
$email2_loja = $linha['email2'];
$email3_loja = $linha['email3'];
$email4_loja = $linha['email4'];
$cidade_loja = $linha['cidade'];
$site_loja = $linha['site'];
$nome_loja_completo = $cidade_loja." - ".$nome_loja;
}
// RD STATION
if(empty($data_array["client_id"]) && !empty($_COOKIE["rdtrk"])) {
$data_array["client_id"] = json_decode(urldecode($_COOKIE["rdtrk"]))->{'id'};
}
$dados = array(
"token_rdstation" => "***************",
"identificador" => "Formulário Principal",
"nome" => $nome,
"email" => $email,
"telefone" => $telefone,
"estado" => $estado,
"cidade" => $cidade_loja,
"loja" => $nome_loja_completo,
"Destino" => $destino,
"subscribe_newsletter" => true,
"client_id" => $data_array["client_id"]
);
$data_string = json_encode($dados);
$ch = curl_init('https://www.rdstation.com.br/api/1.3/conversions');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
)
);
$result = curl_exec($ch);
//$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Inicia a classe PHPMailer
$mail = new PHPMailer();
// Define os dados do servidor e tipo de conexão
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->Host = "smtp.gmail.com"; // Endereço do servidor SMTP
$mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional)
$mail->Username = '[email protected]'; // Usuário do servidor SMTP
$mail->Password = '***'; // Senha do servidor SMTP
$mail->SMTPSecure = 'tls'; // tipo de autenticacao tls ou ssl
$mail->Port = 587; // porta
// Define o remetente
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->From = "[email protected]"; // Seu e-mail
$mail->FromName = "Cliente"; // Seu nome
// Define os destinatário(s)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->AddAddress($email1_loja);
if($email2_loja != ""){$mail->AddAddress($email2_loja);}
if($email3_loja != ""){$mail->AddAddress($email3_loja);}
if($email4_loja != ""){$mail->AddAddress($email4_loja);}
$mail->AddBCC('[email protected]');
// Define os dados técnicos da Mensagem
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsHTML(true); // Define que o e-mail será enviado como HTML
$mail->CharSet = 'UTF-8'; // Charset da mensagem (opcional)
// Define a mensagem (Texto e Assunto)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->Subject = "OPORTUNIDADE DE VENDAS"; // Assunto da mensagem
$mail->Body = '
<strong>Nome:</strong> '.$nome.'<br>
<strong>Email:</strong> '.$email.'<br>
<strong>Telefone:</strong> '.$telefone.'<br>
<strong>Estado:</strong> '.$estado.'<br>
<strong>Destino:</strong> '.$destino.'<br>
';
// Envia o e-mail
$enviado = $mail->Send();
// Exibe uma mensagem de resultado
if ($enviado) {
echo json_encode($site_loja);
} else {
echo $mail->ErroInfo;
}
?>
The purpose is for PHP to send to AJAX the URL of the site that was stored in the variable $site_loja
for when ajax receives this make the redirect. What is happening does not even appear when I put a console.log
it simply gives a refresh on the form page
If the code you put in the question is the same on your site there is an error here
$mail->FromName = "Cliente; // Seu nome
as you can see missing a double quote, change$mail->FromName = "Cliente";
maybe that’s the problem– NoobSaibot
You can add more of your code?
– Rafael Augusto
I updated with full php. Thank you!!
– Léo Kovaski
Wéllingthon, the script is doing everything right, sending the email etc... Only what is not rolling is the answer to ajax with the value of the $site_store variable
– Léo Kovaski
Comment on this line
window.location.replace(json);
in your javascript, which will no longer refresh the page. And see what will return in the console– NoobSaibot
This line would technically be to do the refresh for the site that comes from php in the $site_store variable
– Léo Kovaski
Yes, but that’s why you’re not getting the feedback on
console.log
– NoobSaibot
Even commenting, the console is empty... :/
– Léo Kovaski
What value of $line['website']?
– Diego Schmidt
a url: "https://google.com" for example
– Léo Kovaski