Cachina’s Programming Blog


Envio de E-mail com Jquery e PHP

Posted in Dicas,JAVASCRIPT,PHP por Mayron Cachina em junho 1, 2009
Tags: , ,

Esse é um pequeno exemplo de como você pode integrar Ajax e PHP para enviar um e-mail.

Vamos comentar um pouco o código:

Contato.php

<div id="resposta"></div>
<div id="formulario">
<p><label for="nome" id="lbnome"><strong>Nome:</strong></label></p>
<p><input type="text" id="nome" name="nome" /></p>
<p><label for="email" id="lbemail"><strong>E-mail:</strong></label></p>
<p><input type="text" id="email" name="email" /></p>
<p><label for="mensagem" id="lbmensagem"><strong>Mensagem:</strong></label></p>
<p><textarea id="mensagem"></textarea></p>
<p><input type="button" alt="Enviar" id="submit" value="Enviar" /></p>
</div>


<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#resposta").ajaxStart(function(){ jQuery(this).html("Mensagem sendo enviada, por favor aguarde..."); });
jQuery('#submit').click(function() {
var nome     = jQuery('#nome').val();
var email    = jQuery('#email').val();
var mensagem = jQuery('#mensagem').val();
jQuery.post('mail.php',
{ nome: nome, email: email, mensagem: mensagem, contato: true },
function(data, textStatus) {
jQuery('#resposta').html(data);
});
return false;
});
});
</script>

Explicação do código a cima:

Após isso criaremos o formulário para contato. Não é obrigatório colocar a tag <form> pois vamos pegar os valores pelo ID dos campos, por isso é importante sempre colocar os id´s no input 🙂

Para tudo funcionar deve-se primeiramente ter adicionado a biblioteca jquery.
<script type="text/javascript" src="jquery.js"></script>

A <div id=”resposta”> é muito importante. É nela que vai ser mostradas as informações que vão ser processadas do php.

A função:

jQuery('#submit').click(function() {...

Nada mais é do que pegar o botão e executar um POST assincrono.

var nome     = jQuery('#nome').val();
var email    = jQuery('#email').val();
var mensagem = jQuery('#mensagem').val();

Pega os valores dos inputs (por isso tem que ter os ids)…

jQuery.post('mail.php',
{ nome: nome, email: email, mensagem: mensagem, contato: true },
function(data, textStatus) {

Envia o post ao arquivo mail.php

jQuery('#resposta').html(data);

retorna os dados em formato html para a div resposta. Por isso eu disse que ela é importante.

No arquivo mail.php nada mais é do que um script php com um tratamento de erros e uma validação com expressão regular de e-mail com envio.

Baixe o exemplo aqui ou veja uma demonstração.