Ir para conteúdo
Fórum Script Brasil

Jonas Campos

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Jonas Campos

Jonas Campos's Achievements

0

Reputação

  1. Consegui uma solução. Como o scrip php envia o email, mas não dava um retorno para o usuário, adicionei um eventListener na página do formulário. Assim que o botão é clicado, ele verifica a mensagem de retorno e devolve para o usuário. <script> document.addEventListener('DOMContentLoaded', function () { document.getElementById('contactForm').addEventListener('submit', function (event) { event.preventDefault(); // Prevent default form submission const formData = new FormData(this); // Collect form data fetch(this.action, { method: this.method, body: formData }) .then(response => response.text()) .then(data => { Swal.fire({ title: 'Sucesso!', text: 'Email enviado com sucesso. Obrigado por entrar em contato!', icon: 'success', confirmButtonText: 'OK' }); }) .catch(error => { Swal.fire({ title: 'Erro!', text: 'Não foi possível enviar o email. Por favor, tente novamente mais tarde.', icon: 'error', confirmButtonText: 'OK' }); }); }); }); </script>
  2. Muito obrigado Frank! Eu venho de outras tecnologias. Vim parar no frontend (mas to fazendo de tudo um pouco). Trabalahei com linguagens legadas no backend por muito tempo. Faz uma semana que estou usando o php para algumas tarefas dentro do servidor. abri o log em tempo real, e enchi de linhas para ver o que estava sendo o resultado do envio. Aquele negócio: pelo comportamento da aplicação (envio de email), e mensagem do log, era pra funcionar. Mas tem tanta camada de animação no frontend que deve estar abstratindo o retorno para o usuário. Agora é literalmente caçar agulha no palheiro. (fiz o var_dump() e mandei pro log também. Tudo um sucesso, a não ser pelo retorno para o usuário) $mailSendResult = $mail->Send(); // Enviar o resultado para o log error_log('Resultado de $mail->Send(): ' . ($mailSendResult ? 'true' : 'false')); if ($mailSendResult) { error_log('email enviado com sucesso'); echo '<div class="alert alert-success" role="alert">Thank you. We will contact you shortly.</div>'; showAlert($sendSuccessMessage, 'success'); //redirectToHome(); } else { echo '<div class="alert alert-danger" role="alert">Error: ' . $mail->ErrorInfo . '</div>'; showAlert($sendErrorMessage . ' Erro: ' . $mail->ErrorInfo, 'error'); }
  3. Também não roulou =/ pior que não retorna nada de erro no log
  4. Valeu a dica, mas não funcionou =/ showAlert($body, 'info'); if (!$mail->Send()) { showAlert($sendErrorMessage . ' Erro: ' . $mail->ErrorInfo, 'error'); } else { showAlert($sendSuccessMessage, 'success'); //redirectToHome(); } exit();
  5. Saldações à tod@s. Fiz script para envio de emails quando um formulário é preenchido. O email é enviado com sucesso, mas não é disparado o alerta para o usuário. Segue meu script: function showAlert($message, $type = 'info') { echo "<script> Swal.fire({ title: 'Aviso', text: '$message', icon: '$type', confirmButtonText: 'OK' }); </script>"; } function redirectToHome() { echo "<script>window.location.href = '/';</script>"; } // Collect the posted variables $senderName = $_POST['name']; $senderEmail = $_POST['email']; $senderSubject = 'New Message From ' . $senderName . ' ' . $senderEmail; $senderMessage = $_POST['message']; // Create a new PHPMailer instance $mail = new PHPMailer(); $mail->setFrom($recipientEmail, $recipientName); $mail->addReplyTo($recipientEmail, $recipientName); $mail->addAddress($recipientEmail, $senderName); $mail->Subject = $senderSubject; // Define the body variable $body = " Name: $senderName<br/> Email: $senderEmail<br/> Suburb: $senderSubject<br/> Message: $senderMessage"; $mail->MsgHTML($body); $mail->Body = $body; showAlert($body, 'info'); if (!$mail->Send()) { showAlert($sendErrorMessage . ' Erro: ' . $mail->ErrorInfo, 'error'); } else { showAlert($sendSuccessMessage, 'success'); //redirectToHome(); } ?> Já tentei desligar o jquery, mas a página é cheia de carrocéis e não carrega com ele desativado. As importações de estilos e scripts estão ok e o envio de emails ocorre com sucesso. Falta só descobrir porque não dispara o alerta para o usuário ^^ Alguém poderia me ajudar por favor?
×
×
  • Criar Novo...