PHP联系表单 - 发送到发送脚本,验证失败,返回联系表单&页面锚点

时间:2016-02-17 22:13:57

标签: php html forms anchor

我的第一篇帖子很温柔...... 我有一个PHP联系表单,在php页面上(contact.php)

<form id="contact" method="post" action="send.php">

单击“发送”按钮后,数据将转至send.php脚本进行验证。如果通过验证,则用户会查看sent.html页面,其中显示消息&#34;您的消息已发送 - 谢谢您&#34;显示

$message = "Your Message Has Been Sent - Thank You";
include "sent.html";

但是,如果验证失败,例如,如果某个字段留空,则验证将失败发送&amp; $ message显示在表单内,返回到contact.php ...

if ((!$fname) OR (!$lname) OR (!$email) OR (!$enquiry))
{
$message = "ERROR: ALL FEILDS MARKED * MUST BE COMPLETED";
include "contact.php";
exit();

该消息显示在contact.php页面表格上:

<?php 
    print "$message";
?>

这是可操作的,但表单位于页面的中间位置,用户必须向下滚动才能查看可能错过的错误发送消息,并且查看效果不佳...如何确保验证失败? contact.php页面显示在页面顶部的表格?我可以应用锚点,方法或返回表单ID吗?提前谢谢。

更新: 对不起,我应该说,在send.php脚本中还有其他验证,表单action = send.php转到不允许网址的每个字段和&amp;验证电子邮件字段等所以我想我希望我可以修改下面的代码,通过表格ID重定向到锚点,在contact.php页面上:

if ((!$fname) OR (!$lname) OR (!$email) OR (!$enquiry))
{
$message = "ERROR: ALL FEILDS MARKED * MUST BE COMPLETED";
include "contact.php";
exit();
}

更新:谢谢大家的时间和时间。评论,非常感谢。我最终创建了一个仅保存表单的新页面,并修改了send.php以显示以下内容:

if ((!$fname) OR (!$lname) OR (!$email) OR (!$enquiry))
{
$message = "ERROR: ALL FEILDS MARKED * MUST BE COMPLETED";
include "newform.php";
exit();
}

不是我所知道的最好,但工作原理相同,我认为如果用户想填写表格,至少他们面对的是显示错误信息的表格,便于查看。我确实尝试过使用

onsubmit="document.location.href='http://fullurl/contact.php#formtop'"

这部分成功,因为在滚动到页面顶部之前,玩具可以看到表格聚焦在一个第二个缝的锚点上,我想onsubmit一直工作直到发送到send.php脚本吹出水面。 @ Sergey:sent.html是一种让用户知道邮件被发送的懒惰方式,这个html页面没有显示表单,因为清除表单,发布成功验证后我不知道...我&#39 ; ma前端设计师,不是像你们这样的编码器。 干杯 达伽兹

0 个答案:

没有答案