Php邮件在同一页面上形成成功的消息

时间:2013-11-16 20:34:23

标签: php forms email format

我在我的页面上使用php邮件表单。它工作得很好,但是当发送电子邮件时,关于成功发布的消息将在新的空白页面中打开。我想要做的是直接在发送按钮下显示消息并进行一些格式化。我的代码看起来像这样。

<form action="contact.php" method="POST" id="contactform_main2" style="font-size:14px">
                    <ol>                    
                      <li>
                        <label for="email">Email</label>
                        <input type="email" id="email" name="email" class="text" required />
                      </li>             
                    ....etc
                      <li class="buttons">
                        <input type="submit" name="imageField" value="Odoslať" class="send" style="cursor:pointer" />                     
                      </li>
                    </ol>
                  </form>

这是php

<?php
...geting data
if(
  mail("dominik0109@gmail.com", $subject,
  $sprava, "From:" . $email)){
  echo "<strong>Sucessfully sent</strong>";}
  else {
  echo "Error";}
?>

您可以在my page上看到它,填写任何内容以发布表单。 如何解决这个问题? Thnaks

1 个答案:

答案 0 :(得分:4)

您只需将表单发送到同一页面并检查是否传递了POST变量。

mypage.php

<form action="#message" method="POST" id="contactform_main2" style="font-size:14px">
                    <ol>                    
                      <li>
                        <label for="email">Email</label>
                        <input type="email" id="email" name="email" class="text" required />
                      </li>             
                    <!-- ....etc -->
                      <li class="buttons">
                        <input type="submit" name="imageField" value="Odoslať" class="send" style="cursor:pointer" />                     
                      </li>
                    </ol>
                  </form>

<?php
if(isset($_POST['email'])) {
// ...geting data
  echo "<a name='message'></a>";
  if(mail("dominik0109@gmail.com", $subject, $sprava, "From:" . $email)){
    echo "<strong>Sucessfully sent</strong>";
  }
  else {
    echo "Error";
  }
}
?>

如果您不想刷新页面,则需要使用javascript和ajax。