2017-03-10 11 views
-2

PHPでHTML形式の電子メールフォームを作成しようとしています。送信ボタンを押した後にページがリロードされることを多くの人が知っています。 私はあなたがJqueryとAJAXでこれを行うことができることを知っています。私は多くのStackoverflowの問題を解決してくれましたが、私はまだ英語以外のネイティブスピーカーとしてそれを手に入れません。もう少しHERESに私のコード:電子メール送信フォームリフレッシュなしのPHP(JQueryとAjax)

HTML & AJAX(test.htmlという)

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 

<body> 
    <form method="POST" id="contact"> 
     <div class="form-group"> 
      <label for="name">Voornaam*</label> 
      <input name="fn" type="text" class="form-control" id="fn" aria-describedby="nameHelp" placeholder="John Doe" required> 
     </div> 
     <div class="form-group"> 
      <label for="name">Achternaam*</label> 
      <input name="ln" type="text" class="form-control" id="ln" aria-describedby="nameHelp" placeholder="John Doe" required> 
     </div> 
     <div class="form-group"> 
      <label for="email">Email-address*</label> 
      <input name="email" type="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="[email protected]" required> 
     </div> 
     <div class="form-group"> 
      <label for="message">Bericht*</label> 
      <textarea name="message" required class="form-control" id="message" rows="6"></textarea> 
     </div> 
     <input type="button" id="submit" value="Verstuur" class="btn btn-primary"> 
     <div id="result"> 
      <p id="result">Testing</p> 
     </div> 
    </form> 




    <script type="text/javascript"> 
     $(function(){ 
      $('input[type=button] ').click(function(){ 
       $.ajax({ 
        type: "POST", 
        url: "sendmail.php", 
        data: $("#contact").serialize(), 
        beforeSend: function(){ 
         $('#result').html('<img src="img/loading.gif" />'); 
        }, 
        succes: function(data){ 
         $('#result').html(data); 
        } 
       }); 
      }); 
     }); 
    </script> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
</body> 

</html> 

PHPここ

<?php 
if(isset($_POST['submit'])){ 
    $to = "[email protected]"; // this is your Email address 
    $from = $_POST['email']; // this is the sender's Email address 
    $fn = $_POST['fn']; 
    $ln = $_POST['ln']; 
    $messagemail = $_POST['message']; 
    $subject = "Form submission"; 
    $subject2 = "Copy of your form submission"; 
    $message = $fn . " " . $ln . " wrote the following:" . "\n\n" . $messagemail; 
    $message2 = "Here is a copy of your message " . $fn ." ". $ln ."\n\n" . $messagemail; 

    mail($to,$subject,$message); 
    mail($from,$subject2,$message2); // sends a copy of the message to the sender 
} 
+0

あなたが見た例から、何か試してみましたか?どこで立ち往生しましたか?チュートリアルとAJAXの使い方に関するオンラインの例がありますが、Stack Overflowは実際にそれらのチュートリアルを置き換えるつもりはありません。 – David

+0

私は複数の例を試しましたが、実際の動作を理解していません – GrayWolf

+0

何か具体的なことに取り組んでいれば、それを手助けすることができます。 "Teach me AJAX"はStack Overflowの質問には広すぎます。私たちが与える例は、既に存在する数多くの例よりも優れています* Stack Overflowの多くの質問にはすでに存在するものも含まれます。 – David

答えて

0

はあなたがテストコードを確認することができます(sendmail.php):

HTMLファイルにコードの下に追加します。

var data = { 
name: $("#fn").val(), 
email: $("#email").val() 
}; 

$.ajax({ 
type: "POST", 
url: "email.php",/*php file path*/ 
data: data, 
success: function(){ 
    $('.success').fadeIn(1000); 
} 

});

関連する問題