Formulário PHP e Ajax.

19/01/2015

0

PHP

Pessoal preciso de um exemplo de formulário em PHP e Ajax. Estou me batendo com um form aqui e não consigo achar o erro. Sou novo em PHP e Ajax e preciso de ajuda. Alguém pode me ajudar. Grato.
Raphael Gumm

Raphael Gumm

Responder

Posts

19/01/2015

William

Essa categoria do meu blog tem muito material sobre AJAXcom PHP link http://devwilliam.blogspot.com.br/search/label/AJAX.
Responder

19/01/2015

Ronaldo Lanhellas

Pessoal preciso de um exemplo de formulário em PHP e Ajax. Estou me batendo com um form aqui e não consigo achar o erro. Sou novo em PHP e Ajax e preciso de ajuda. Alguém pode me ajudar. Grato.


Não seria mais fácil você postar o erro para tentarmos lhe ajudar ?
Responder

19/01/2015

Raphael Gumm

contato.php

//importando biblioteca Jquery
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script>
//Função ao clicar no botão Enviar
$(document).ready(function(){    
   $("#enviar").click(function(){

     // pega o valor do input através do id
     var nome = $("#nome").val();
     var email = $("#email").val();   
     var telefone = $("#telefone").val(); 
     var assunto = $("#assunto").val();
     var mensagem = $("#msg").val();

     $.ajax({
       url: 'envia.php', //caminho do arquivo a ser executado
       dataType: 'html', //tipo do retorno
       type: 'post', //metodo de envio
       data: nome:nome, email:email, telefone:telefone, assunto:assunto, mensagem:msg //valore que serão enviados na pagina script.php
       success: function(data){
               $("#divResposta").html(data); //aqui retorna os dados dentro da Div. crie essa Div na pagina que vc envia os dados
        },
       error: function(xhr,er){
            //tratamento de erro
      }
    });
});
});
</script>

<div class="col-sm-5">
                        <!-- Contact Form -->
                        <h3>Deixe sua mensagem</h3>
                        <div class="contact-form-wrapper">
                            <form class="form-horizontal" role="form" action="envia.php" method="post" id="FormFaleConosco">
                                 <div class="form-group">
                                     <label for="nome" class="col-sm-3 control-label"><b>Nome</b></label>
                                     <div class="col-sm-9">
                                        <input class="form-control" type="text" name="nome" id="nome" >
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="email" class="col-sm-3 control-label"><b>E-mail</b></label>
                                    <div class="col-sm-9">
                                        <input class="form-control"  type="text" name="email" id="email">
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="telefone" class="col-sm-3 control-label"><b>Telefone</b></label>
                                    <div class="col-sm-9">
                                        <input class="form-control"  type="text" name="telefone" id="telefone">
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="assunto" class="col-sm-3 control-label"><b>Assunto</b></label>
                                    <div class="col-sm-9">
                                        <input class="form-control" type="text" name="assunto" id="assunto">
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="mensagem" class="col-sm-3 control-label"><b>Mensagem</b></label>
                                    <div class="col-sm-9">
                                        <textarea class="form-control" rows="5" name="mensagem" id="msg"></textarea>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="col-sm-12">
                                        <input type="button" id="enviar" value="Enviar Dados"/>
                                        <div id="divResposta"></div> <!--o retorno do ajax deve aparecer dentro dessa DIV -->

                                    </div>
                                </div>
                            </form>
                        </div>
                        <!-- End Contact Info -->
                    </div>


envia.php

<?php

$nome= $_POST['nome'];
$email= $_POST['email'];
$fone= $_POST['telefone'];
$assunto= $_POST['assunto'];
$msg= $_POST['mensagem'];

$corpo = "<b>Nome: <font color=\"#90f\">" . $nome . "</font></b><br><br>\n";
$corpo .= "<b>E-Mail: <font color=\"#90f\">" . $email . "</font></b><br><br>\n";
$corpo .= "<b>Telefone: <font color=\"#90f\">" . $fone . "</font></b><br><br>\n";
$corpo .= "<b>Assunto: <font color=\"#90f\">" . $assunto . "</font></b><br><br>\n";
$corpo .= "<b>Mensagem:<br><br> <font color=\"#90f\">" . $msg . "</b></font><br><br>\n";

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n"; // Aqui você informa o formato e o charset do e-mail

$headers .= "From: Contato - Site <" . $email . ">\n";
//$headers .= "Return-Path: <email@email.com.br>\n";
$headers .= "Return-Path: <email@email.com.br>\n";

//--------Verifica se não há nenhum erro e insere os dados---------------  
//mail("email@email.com.br>","Contato -". $nome,$corpo,$headers); //envio o correio...
mail("email@email.com.br>", "Contato -" . $nome, $corpo, $headers); //envio o correio...
//agradece o envio
$resposta =  "<font color=#f90 face=Arial, sans-serif; size=4><br>Obrigado  <b>$nome</b> por preencher o formulário. <br><br>Em breve entraremos em contato.</font><br><br>";

echo json_encode($resposta); // transforma em formato Json
?>
Responder

19/01/2015

Ronaldo Lanhellas

E o erro ?
Responder

19/01/2015

Raphael Gumm

E o erro ?


A questão é que quando clico no botão "Enviar dados" ele não envia, é como se estivesse se ação alguma. Revisei o código várias vezes mas não achei o erro, não sei o porque dele não enviar.
Responder

19/01/2015

Ronaldo Lanhellas

Bom, o ideal é usar um envio de e-mail autenticado, o mail() pode não estar conseguindo enviar o email. Use o PHPMailer.
Responder

19/01/2015

Ronaldo Lanhellas

Bom, o ideal é usar um envio de e-mail autenticado, o mail() pode não estar conseguindo enviar o email. Use o PHPMailer.
Responder

19/01/2015

Raphael Gumm

Bom estou rodando em servidor local e sei que não é possível enviar email com servidor local. Porém a mensagem de resposta não deveria aparecer mesmo assim ?

$resposta = "<font color=#f90 face=Arial, sans-serif; size=4><br>Obrigado <b>$nome</b> por preencher o formulário. <br><br>Em breve entraremos em contato.</font><br><br>";
Responder

19/01/2015

Ronaldo Lanhellas

Bom estou rodando em servidor local e sei que não é possível enviar email com servidor local. Porém a mensagem de resposta não deveria aparecer mesmo assim ?

$resposta = "<font color=#f90 face=Arial, sans-serif; size=4><br>Obrigado <b>$nome</b> por preencher o formulário. <br><br>Em breve entraremos em contato.</font><br><br>";


é possível sim enviar email do servidor local, faço isso constantemente.
Responder

19/01/2015

Ronaldo Lanhellas

Bom estou rodando em servidor local e sei que não é possível enviar email com servidor local. Porém a mensagem de resposta não deveria aparecer mesmo assim ?

$resposta = "<font color=#f90 face=Arial, sans-serif; size=4><br>Obrigado <b>$nome</b> por preencher o formulário. <br><br>Em breve entraremos em contato.</font><br><br>";


é possível sim enviar email do servidor local, faço isso constantemente.
Responder

19/01/2015

Raphael Gumm

Tá ok. Porém ainda estou com o problema, parece que quando clico no botão de enviar ele nem passa pelo meu script, parece que está sem ação. Isso que não estou conseguindo entender.
Responder

19/01/2015

Ronaldo Lanhellas

Tá ok. Porém ainda estou com o problema, parece que quando clico no botão de enviar ele nem passa pelo meu script, parece que está sem ação. Isso que não estou conseguindo entender.


Tenta ver se ocorre algum erro no console do browser, se for google chrome só apertar F12;
Responder

19/01/2015

William

Tenha em mente que se ocorrer um erro no script envia.php não será enviado o retorno, então possivelmente a função mail() pode estar disparando uma exception e matando a execução do script.
Responder

20/01/2015

Raphael Gumm

Hum... Entendi. Bom de qualquer forma esse foi o erro que imprimiu no console do Chrome.

Uncaught SyntaxError: Unexpected token :
leaflet.js:5 Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: (min-resolution: 144dpi)
leaflet.js:5 Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: (min-resolution: 144dpi)
http://localhost/microfile/css/images/bg.png Failed to load resource: the server responded with a status of 404 (Not Found)
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar