2014-01-17 118 views
0

我有你的轧机形式运行的时候,用一个PHP脚本来验证并通过电子邮件发送关闭重定向到PHP页面。如何停止提交HTML表单

<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

点击submit后,有什么办法可以留在原来的contact.html页面,只是让电子邮件发生在后台?

+1

http://en.wikipedia.org/wiki/Ajax_%28programming%29 –

+0

'动作= “contact.html”'好,你可以使用AJAX,但你actully需要 – 2014-01-17 03:04:33

回答

-1

你可以使用JavaScript的阿贾克斯)与服务器进行通信,这样它会继续使用相同的HTML文件。

另一种方法是将您的html文件重命名为.php扩展名并在此文件上工作。

祝你好运!

0

Ajax是你最好的最好的。如果不是的话,那么快速和肮脏的方法是将php块放在页面顶部,并将您contact.php中的所有内容放在if(isset($ _ post ['data']))语句中。

简单的例子

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

} 
?> 

基本上,如果有POST数据,做一些事情,如果没有,只写页面正常

+0

我会说'尝试和真实''不''快速和肮脏'到'一体化'的方法 – 2014-01-17 03:34:36

+0

它总是让我想起在.NET之前编写asp页面,并且仍然使用webforms,并且在顶部有大量的代码。现在我通常只是将数据 - > $ .post()发送到服务器 - >做这些东西 - >插入一点“感谢您与我们联系bleh bleh bleh ...链接到索引“,我认为这只是让我觉得*就像我从asp学到的东西一样 – ZombieBunnies

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 
} 
?> 
0

您可以把您的网页上,最初装载在其中一个空白页的iframe,并有如下形式的目标是iframe中,因此将张贴到iframe中。

有足够大,这样就可以把像“您的资料已被接受”的简单消息的iframe可以通过contact.php

打印这里,告诉你如何做到这一点的链接。

How do you post to an iframe?