2011-04-25 94 views
0

我试图使我的联系表单提交过程同样顺利地工作,无论客户端是否启用javascipt。发送表单提交错误/成功消息的路由

如果启用javascript,当触发onsubmit事件,然后验证将处理客户端这就要求我validateContactForm()函数:

<form method="POST" action="email_processing.php" onsubmit="return validateContactForm();"> 

如果返回false,那么表单不提交并指示客户纠正他做错了什么。

表单被提交给email_processing.php脚本,如果true由validateContactForm()返回,或者javascript被禁用。 PHP脚本然后重新验证数据,如果一切正常,它会发送一封电子邮件。

如果我依赖于javascript,我可以让这个过程异步,并且只需要php脚本返回一个消息,这个消息将被一个回调函数客户端处理。这可能是错误消息或成功消息。

但是,因为我想让这项工作为JavaScript禁用的人,我不能这样做。

如果出现错误,我需要返回联系表单页面,并在联系表单中显示错误消息,如果成功,我应该删除联系表单,并在其中显示“谢谢”消息形式曾经是。

我很想知道是否计算器用户会:

  1. 表单提交给PHP脚本这将然后重定向到一个不同的PHP/HTML页面。

  2. 验证/电​​子邮件发送功能在联系我们php页面本身的顶部,每次联系我们页面加载时,我们检查是否已经设置了某些变量,如果是,那么我们知道我们需要验证并发送电子邮件并显示正确的格式/信息。

  3. 如果我应该考虑这个不同。这一定是一种非常普遍的情况,我已经在自己的应用中做过很多次了,我知道我会启用javascript,但是我需要为客户端做这件事,我想确保它是正确的。

提前

回答

1

这里非常感谢为我做什么。首先我用jQuery validate(那只是我验证)和错误会显示如果有任何不会让用户继续没有验证

再然后我送使用jQuery ajax表单提交,当它击中的服务器我也做用PHP仔细检查这让我双重保护和错误送回

如果用户没有启用JavaScript的表单提交验证完成错误消息显示

HTH

+0

感谢您的回复。我已经按照您所建议的方式使用JQuery进行了验证,但是如果javascript被禁用,那么在验证完成后,服务器端会如何发送错误或成功消息?我认为,需要将全新的页面发送回去,因为我们无法进行任何Ajax dom操作,所以无论我需要重定向到“错误”还是“成功”页面,还是实际的'.php'页面提交表单需要的是实际的联系表单页面吗?这是令我困惑的一点。 – Joe 2011-04-25 13:01:43

+0

是的,如果没有JavaScript,它们应该返回到错误信息的同一页面 – mcgrailm 2011-04-25 13:08:05

+0

对,谢谢。在这种情况下,脚本将如何知道它是否已通过javascript启用发送? – Joe 2011-04-25 13:16:35

1

这的确是不一个很常见的情况来处理。

所以你有两种验证:客户端和服务器端。服务器端是最重要的,我将更多的客户端验证视为一项功能。例如,如果您要填写表单,那么在实际发送请求时查看它是否正确填写是“很好”,但出于安全原因,您仍应该进行服务器端验证。

你会想做一个服务器端验证总是,但它实际上更好做两个。以下是您应如何设计它:

表单操作应将用户发送到.php文件。如果内容得到验证,那么给他一个确定的消息。如果内容未通过验证,请将其发送回表单页面并显示错误消息。

如果你正在寻找一个不太抽象的解决方案,让我知道。

+0

你好。感谢您的回复。这让我感到困惑的是当你说'给他一个好消息'时,如果你不使用ajax,那么你需要将他重定向到'OK消息页面'或实际的'.php'页面表单被发送到应该是页面的形式上可以配置取决于不应该的响应。你将如何处理?谢谢 – Joe 2011-04-25 13:04:59

+0

同样,在发回表单页面时,它必须是某种重定向(重定向应该怎么做最好?),或者表单页面本身应该是可配置的。 – Joe 2011-04-25 13:06:17

+0

嘿,很抱歉已收到评论(我需要了解如何在收到评论时发送邮件)。 – kalusn 2011-05-04 11:31:09