如何在提交HTML表单时停止重定向到php页面

时间:2014-01-17 03:01:49

标签: php html email html-form

我已经完成了磨机表格的运行,并使用PHP脚本进行验证并通过电子邮件发送。

<form id="contactForm" action="contact.php" method="post">
    <fieldset>
        <p>
            <label>NAME:</label>
            <input name="name"  id="name" type="text" />
        </p>
        <p>
            <label>EMAIL:</label>
            <input name="email"  id="email" type="text" />
        </p>
        <p>
            <label>COMMENTS:</label>
            <textarea  name="comments"  id="comments" rows="5" cols="20" ></textarea>
        </p>
        <p><input type="submit" value=" " name="submit" id="submit" /></p>
    </fieldset>
    <p id="error" class="warning">Message</p>
</form>

问题是,当我点击submit时,它会将我从我所在的页面上填写(填写表单)并将我带到一个空白的白页 - contact.php

点击contact.html后,我是否可以保留原始submit页面,只是让电子邮件发送到后台?

4 个答案:

答案 0 :(得分:0)

Ajax是你最好的。如果没有,快速而肮脏的方法是将一个php块放在你的页面顶部,并将你的contact.php中的所有东西放在if(isset($ _ post ['data']))语句中。

简要示例

<?php
if(isset($_POST['variable_from_form']))
{
    // send mail, insert in database, etc. stuffs 

}
?>

基本上,如果有帖子数据,做一些事情,如果没有,只需按正常方式写页面

答案 1 :(得分:0)

Php正在执行分配的工作:它正在重定向到action =“”标记中您要求的页面。 如果您需要验证电子邮件或登录,则应使用相同的contact.php表单执行这两项操作:输入用户电子邮件并验证和/或登录或您想要执行的任何操作。

在contact.php的开头,使用php脚本接收提交的字段,验证,清理和插入等等。

<?php

 if ($_SERVER["REQUEST_METHOD"] == "POST") 
 {  
    $email=$_POST['email'];
    $email=filter_var($id_post, FILTER_SANITIZE_EMAIL);  
    if(empty($email) )
      {$error=['email']="enter a valid email"}
    else {
       $user_email=$email;
       }
  } 
   if(empty($errors) && $_POST)  
      {
         //with $user_email defined and sanitized you can do whatever you want:         insert,    edit, query, email.
     }
  elseif ($errors || !$_POST) 
    {
    ?>

在这里,把所有的html表单放在最后,关闭打开的php。

<?php
}
?>

答案 2 :(得分:0)

您可以在页面上放置一个最初在其中加载空白页面的iframe,并将表单的目标设为iframe,以便将其发布到iframe中。

让iframe足够大,以便您可以通过contact.php打印一条简单的消息,例如“您的信息已被接受”

这是一个链接,告诉你如何做到这一点。

How do you post to an iframe?

答案 3 :(得分:-1)

您可以使用 javascript Ajax )与您的服务器进行通信,这样它将继续使用相同的html文件。

另一种方法是将您的html文件重命名为 .php 扩展名并处理此文件。

祝你好运!