我已经完成了磨机表格的运行,并使用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
页面,只是让电子邮件发送到后台?
答案 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打印一条简单的消息,例如“您的信息已被接受”
这是一个链接,告诉你如何做到这一点。
答案 3 :(得分:-1)
您可以使用 javascript ( Ajax )与您的服务器进行通信,这样它将继续使用相同的html文件。
另一种方法是将您的html文件重命名为 .php 扩展名并处理此文件。
祝你好运!