2016-11-24 11 views
1

をPostメソッドを実行します。私は(<strong>ポスト</strong>メソッドを介して)メールを送信しています。このフォーム持って現在のページに

<form method="POST" action="sendmail.php"> 
    <input type="text" name="sender_name" placeholder="Name" required=""> 
    <input type="text" name="sender_email" placeholder="Email" required=""> 
    <input type="text" name="subject" placeholder="Subject" required=""> 
    <textarea placeholder="Message" name="message" required=""></textarea> 
    <input type="submit" name="send" value="SEND"> 
</form> 

、ここでは私のsendmail.phpです:

<?php 
    if($_POST['send'] == 'SEND'){  
    $to  = '[email protected]'; 
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 
    $headers = "From: ".$_POST['sender_nam‌​e​']." <".$_POST['sender_em‌​ail‌​'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_ema‌​il‌​']."\r\n"; 
    $headers = "Content-type: text/html; charset=iso-8859-1\r\n"; 
    'X-Mailer: PHP/' . phpversion(); 

    mail($to, $subject, $message, $headers); 
    } 
?> 

することができますように上記のコードを参照してください。正常に動作しているメールを送信していますが、上記のアクションは現在のページを残して実行しています。

たとえば、私のURLを投稿する前です。 mydomain.com投稿後はmydomain.com/sendmail.phpとなります。

したがって、私は上記の機能を現在のページから離れることなく実行できますか?

+0

ページをリロードしない場合は、ajaxリクエストを使用してください。 –

答えて

1

AjaxとjQueryについて知っていますか?続きを読む、here

あなたのajaxコールは次のようになります。

AJAXによって
$.ajax({ 
     url: "yourApplication/methodWhichSendsEmail", 
     type: "post", 
     data:JSON.stringify({ 
      to : $to, 
      subject: $subject, 
      message: $message, 
      headers: $headers 
}) 

}).done(function() { 
    //Whatever you want to do once the request is succeed. As you don't want to reload. i.e. 
    alert("Email Sent"); 
}); 
+0

どこでこの呼び出しをindex.htmlで行う必要がありますか? @superCoder –

+0

あなたのページにjQueryを、そして上記のJavaScriptコードを

1

いずれか、または次の操作を行うことができます。

  1. あなたは<form>
  2. action=""を指定しますがindex.phpからsendmail.phpからコード(またはものは何でもあなたのホームページがある)
が含まれます
0

フォームアクションを空にする必要があります。

PHPコードでは、フォームが転記されているかどうかを確認する必要があります。あなたが望むものは何でもできます。フォームが投稿された場​​合にのみメールを送信します。

if(isset ($_POST['send']) && $_POST['send'] == 'SEND'){  
    $to  = '[email protected]'; 
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 
    $headers = "From: ".$_POST['sender_nam‌​e​']." <".$_POST['sender_em‌​ail‌​'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_ema‌​il‌​']."\r\n"; 
    $headers = "Content-type: text/html; charset=iso-8859-1\r\n"; 
    'X-Mailer: PHP/' . phpversion(); 

    mail($to, $subject, $message, $headers); 
    } 
関連する問題