2016-10-25 7 views
-1

Ich entwickle ein reguläres Formular in HTML mit Jquery Ajax und PHP.Wo meine POST() Daten gehen

Wenn ich die E-Mail über PHP-Funktion mail senden, bin ich empfangen die nächste E-Mail mit den leeren Feldern und ich weiß nicht, warum:

From: 
E-Mail: 
Message: 

Der Code Ich verwende:

-PHP (sendMail.php):

<?php 
if($_POST){ 
    $name = $_POST['form_name']; 
    $email = $_POST['form_email']; 
    $content = $_POST['form_content']; 
    $from = 'Koke Contact Form'; 
    $to  = '[email protected]'; 
    $subject = 'Someone is contacting'; 
    $body = "From: $name\n E-Mail: $email\n Message:\n $content"; 

    //send email 

    if (mail ($to, $subject, $body)) { 
       $result='<div class="alert alert-success">Thank You! I will be in touch</div>'; 
     } else { 
      $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>'; 
     } 
    } 
?> 

-HTML

<form method = "post" id = "message" action = "sendMail.php"> 
    <div class="row"> 
     <div class = "yourinfo col-md-6"> 
      <div class = "form-group" id = "nombre"> 
       <label for = "input-name"> Tu nombre: </label> 
       <input id= "form-name" type= "text" class= "form-control gborder" name = "form-name"> 
      </div>   
      <div class = "form-group " id = "email"> 
       <label for = "input-email"> Tu email: </label> 
       <input id = "form-email" type= "email" class= "form-control gborder" name = "form-email"> 
      </div> 
     </div>       
     <div class = "form-group col-md-6" id = "comment"> 
      <label for = "input-content"> Mensaje: </label> 
      <textarea id = "form-content" class="form-control gborder" rows = "5" name = "form-content"></textarea> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class = "text-center"> 
      <input id="submit" name="submit" type="submit" value="ENVIAR" class="btn btn-primary"> 
     </div> 
    </div> 
</form> 

-JQUERY

$('#message').submit(function() { 
    if($('#form-name').val() !== "" && $('#form-email').val() !== "" && $('#form-content').val() !== "") { 
     var data = { 
      name: $('#form-name').val(), 
      email: $('#form-email').val(), 
      content: $('#form-content').val() 
     }; 
     $.ajax({ 
      type: 'POST', 
      url: 'sendMail.php', 
      data: data, 
      success: function() {    
       $("html, body").animate({ scrollTop: 0 }, "slow"); 
       $('#form-content').val(""); 
       $('#form-name').val(""); 
       $('#form-email').val(""); 
      } 
     }); 
    } return false; 
}); 

Wie ich schon sagte, ich bin die E-Mail empfangen, aber die von E-Mail und im Nachrichtentext ist leer. Ich kämpfe seit 2 Tagen damit. Ich weiß nicht, wie ich das beheben soll.

Danke für Ihre Hilfe!

Antwort

2

Sie senden von js Array

var data = { 
    name: $('#form-name').val(), 
    email: $('#form-email').val(), 
    content: $('#form-content').val() 
}; 

Aber in PHP versuchen Sie auf andere Felder zugreifen

$name = $_POST['form_name']; 
$email = $_POST['form_email']; 
$content = $_POST['form_content']; 

Ajax name und in php form_name, muss aber name sein.

+0

als Sie !! Das war's –