2016-11-24 4 views
1

я иметь такую ​​форму, где я отправляю почту (через Опубликовать метод):выполнить Post метод на текущей странице

<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({ 
     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

Либо AJAX или вы можете сделать следующее:

  1. Вы указываете action="" в <form>
  2. Вы включают код из sendmail.php в index.php (или что ваша домашняя страница)
0

Вам необходимо установить действие формы пустым.

Затем в PHP-коде вам нужно проверить, размещена ли форма, или нет. ТАК нужно проверить его сначала 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); 
    } 
Смежные вопросы