我使用jQuery构建了一个简单但工作正常的AJAX表单。表单在提交之前用jQuery验证,然后用PHP再次成功提交。将数据从PHP发送到jQuery
唯一的问题是错误处理。当PHP检查返回所有字段都没问题时,我会显示一条成功消息。如果出现错误,我只会显示“出现错误”。
如何从PHP发回数据到jQuery,这样无效的字段可以被标记为无效?
或者这种形式的错误处理是不必要的,因为动态突出显示需要打开JavaScript并且如果打开JavaScript,表单不能被提交错误?
基本上,我的有效支票看起来像这样(简化当然):
function checkSomething($something) {
$valid = true;
if (strlen($something) === 0) {
$valid = false;
}
return $valid;
}
在脚本的末尾,我不喜欢这样写道:
if (checkSomething($something) && checkThis($this) && checkThat($that)) {
echo "success";
} else {
echo "error";
}
而且在我的JavaScript/jQuery代码它看起来像这样:
$.ajax({
url: "form.php",
type: "POST",
data: string,
success: function (result) {
if (result == "success") {
alert("success");
} else {
alert("error");
}
}
});
你需要从PHP回显更多东西,告诉你什么失败了,然后用JS处理这个响应,以显示任何适合的消息。发布一些代码并告诉我们你现在是如何设置的,并且它会更容易帮助。 – adeneo 2013-02-15 20:24:46
如果你有jQuery验证并启用了JS,那么你的PHP验证可能永远不会发挥作用(它只是为了预防措施)。换句话说,如果您的客户端验证正在工作,那么您的服务器端验证将不会有任何消息发回。如果您的客户端验证被禁用或绕过,那么您的服务器端验证将接管。如果客户端的JS被禁用,那么无论如何你都不能通过jQuery发回任何消息。也显示代码。 – Sparky 2013-02-15 20:28:39
他应该仍然返回一个JSON响应。如果它被绕过,那并不意味着Javascript被禁用。即使它是,它应该返回JSON响应,如果Javascript被禁用,它将在浏览器中显示为文本。 – crush 2013-02-15 20:36:36