I can not send data from Angularjs to PHP

Asked

Viewed 66 times

-1

I would like to send an email using Angular JS and PHP, but I don’t know why my data is not passing.

index php.:

<section id="contact" ng-controller="DbController">
 <div class="contato">
  <div class="container wowload bounceInUp animated">
   <div class="row">
    <div class="col-lg-12 text-center ">
     <h2 class="section-heading">Contato</h2>
     <h3 class="section-subheading text-muted">Envie-nos uma mensagem para entrarmos em contato.</h3>
    </div>
   </div>
   <div class="row carder">
    <div class="col-lg-12">
     <form role="form" name="form_contato" method="post" ng-submit="insertInfo(empInfo);" >
      <div class="row">
       <div class="col-md-6">
        <div class="input-group">
         <span class="input-group-addon">
          <i class="material-icons">person</i>
         </span>
         <input type="text" class="form-control" placeholder="Digite o seu nome aqui." id="nome" name="nome" ng-model="empInfo.nome" required>
        </div>
        <div class="input-group">
         <span class="input-group-addon">
          <i class="material-icons">mail</i>
         </span>
        <input type="email" class="form-control" placeholder="Digite o seu e-mail aqui." id="email" name="email" ng-model="empInfo.email" data-toggle="tooltip" data-placement="top" title="Exemplo: [email protected]" required>
        </div>
        <div class="input-group">
         <span class="input-group-addon">
          <i class="material-icons">stay_primary_portrait</i>
         </span>
         <input type="tel" class="form-control" placeholder="Digite o seu número de celular aqui. " id="phone" name="telefone" ng-model="empInfo.telefone" onkeypress="return mascarafone(this);" MINLENGTH=14 MAXLENGTH=14 data-toggle="tooltip" data-placement="top" title="Exemplo: (88)99999-9999" required>
        </div>
        <div class="input-group">
         <span class="input-group-addon">
          <i class="material-icons">call</i>
         </span>
         <input type="tel" class="form-control" placeholder="Digite o seu número fixo aqui. " id="phonef" name="telefoneF" ng-model="empInfo.telefoneF" onkeypress="return mascarafoneF(this);" MINLENGTH=13 MAXLENGTH=13 data-toggle="tooltip" data-placement="top" title="Este campo é opicional Exemplo: (99)9999-9999">
        </div>
       </div>
       <div class="col-md-6 form-group label-floating is-empty">
        <label class="control-label"> Digite a sua mensagem aqui. </label>
        <textarea class="form-control" id="message" name="msg" ng-model="empInfo.msg" rows="5" required></textarea>
        <span class="material-input"></span>
       </div>
      </div>
      <div class="clearfix"></div>
      <div class="col-lg-12 text-center">
       <div class="g-recaptcha" data-theme="light" data-sitekey="6LfslxwUAAAAADyO05TLJB6OEGkfhVbBusbKoprU" style="transform:scale(0.77);-webkit-transform:scale(0.77);transform-origin:0 0;-webkit-transform-origin:0 0;"></div>
       <div id="success"></div>
       <button type="submit" id="btn_cont" class="btn btn-xl" ng-click="insertInfo();">Enviar mensagem</button>
      </div>
     </form>
    </div>
   </div>
  </div>
 </div>
</section>

Scope Angular js

$scope.insertInfo = function (info) {
   swal({
         title: "Sucesso!",
         text: "Sua mensagem foi enviada com Sucesso",
         type: "success"
        }, function () {
           location.reload();
        });
$http.post('mail/contact_me.php', {"nome": info.nome, "email": info.email, "telefone": info.telefone, "telefoneF": info.telefoneF, "msg": info.msg}).success(function (data) {
     if (data == true) {
        getInfo();
     }
});

Email php

//Variáveis
$data = json_decode(file_get_contents("php://input")); 

$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$telefoneF = $_POST['telefoneF'];
$opcoes = $_POST['escolhas'];
$mensagem = $_POST['msg'];
$data_envio = date('d/m/Y');

// Compo E-mail
$arquivo = "
<style type='text/css'>
  body {
    margin:0px;
    font-family:Verdane;
    font-size:12px;
    color: #666666;
  }
  a {
    color: #666666;
    text-decoration: none;
  }
  a:hover {
    color: #FF0000;
    text-decoration: none;
  }
</style>

<html>
  <table width='510' border='1' cellpadding='1' cellspacing='1' bgcolor='#CCCCCC'>
    <tr>
     <td>
      <tr>
       <td width='500'>Nome:$nome</td>
      </tr>
      <tr>
       <td width='320'>E-mail:<b>$email</b></td>
      </tr>
      <tr>
       <td width='320'>Telefone:<b>$telefone</b></td>
      </tr>
      <tr>
       <td width='320'>Telefone:<b>$telefoneF</b></td>
       </tr>
      <tr>
       <td width='320'>Mensagem:$mensagem</td>
      </tr>
     </td>
    </tr>  
    <tr>
     <td>Este e-mail foi enviado em <b>$data_envio</b></td>
    </tr>
   </table>
  </html>
";

// emails para quem será enviado o formulário
$emailenviar = "[email protected]";
$destino = $emailenviar;
$assunto = "CONTATO PELO SITE";

// É necessário indicar que o formato do e-mail é html
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.$nome.' <$email>';
//$headers .= "Bcc: $EmailPadrao\r\n";

$enviaremail = mail($destino, $assunto, $arquivo, $headers);
if($enviaremail) {
  $mgm = "E-MAIL ENVIADO COM SUCESSO! <br> O link será enviado para o e-mail fornecido no formulário";
  echo " <meta http-equiv='refresh' content='10;URL=contato.php'>";
} else {
  $mgm = "ERRO AO ENVIAR E-MAIL!";
  echo "";
}
  • 4

    Boot in Portuguese, this is Sopt

  • can be edited?

1 answer

1

What I saw of wrong was:

<button type="submit" id="btn_cont" class="btn btn-xl" ng-click="insertInfo();">Enviar mensagem</button>

So you call the send function without parameters

Should only use:

<button type="submit" id="btn_cont" class="btn btn-xl" >Enviar mensagem</button>

So when event fired (Submit) it will go for your form ng-Ubmit

Browser other questions tagged

You are not signed in. Login or sign up in order to post.