我有一个php邮件表单(工作正常),目前重定向到感谢页面。我正在改造网站,并希望(而不是重定向到另一个页面)(成功提交)出现模式弹出窗口并说谢谢。我还需要清除表单,因为用户将留在当前页面上。我已经搜索了(在stackoverflow和web搜索上)一个解决方案。我找到了一些“想法”,但没有任何有用的。我目前正在网站上的其他东西上使用模态弹出窗口(自改版以来)并且通常了解它们是如何工作的。我对php也有基本的了解。我在想是否可能(?)在标题中使用某种类型的javascript来调用模态弹出窗口。我也看到过它需要成为AJAX的想法。
非常感谢任何帮助。
这是我的表单html:
<p class="formrequired">Required fields are marked with an asterisk(*)</p>
<form action="form.php" method="post">
<ol class="forms">
<li><label for="first_name">*First Name</label><input type="text" name="first_name"/></li>
<li><label for="last_name">Last Name</label><input type="text" name="last_name"/></li>
<li><label for="email">*Email</label><input type="text" name="email"/></li>
<li><label for="comment">*Message</label><textarea name="comment"cols="45" rows="5"></textarea></li>
<li><input type="submit" value="Submit" class="submit"/>
</ol>
</form>
和我的php:
<?php
$myemail = "person@email.com";
$first_name = check_input($_POST['first_name'], "Please enter your first name");
$last_name = check_input($_POST['last_name']);
$email = check_input($_POST['email']);
$comment = check_input($_POST['comment'], "Please enter your message");
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address is not a valid email address");
}
$subject="New form submitted on Napoleonville Fire";
$message = "Hello Jordy!
Your contact form has been submitted by:
First Name: $first_name
Last Name: $last_name
E-mail: $email
They left the following message:
$comment
End of message.
";
mail($myemail, $subject, $message);
header('Location: thankyou.html');
exit();
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Please correct the following error:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>
再次感谢您的帮助。
如果可以解决,我会有一个“第2部分”。
答案 0 :(得分:0)
我能想到的两个流程
<强>非AJAX 强>
按照您目前的方式将表单提交到服务器。然后在重新生成成功页面时,使用模式显示呈现页面。提供某种类型的关闭按钮,在其上显示无显示或完全从DOM中删除它。在这种方法中,您可以使用PHP处理空表单。这是更传统的范例。
<强> AJAX 强>
为此,请向表单提交添加事件处理程序。通过AJAX提交表单,但不要立即清除表单字段。等待服务器的响应。例如,如果服务器在表单提交中发现验证错误,则必须更新表单以反映此错误。如果服务器返回成功响应,请使用Javascript清除表单字段并显示模式。