表单验证 - jQuery验证是否足够以及如何在PHP中整齐地验证数据?

时间:2013-05-30 20:11:54

标签: php javascript jquery forms validation

我有一个表单(现在只有一个,但是会有更多类似的参数)并且我使用jQuery验证验证它(太大了,我只使用jQV验证一个字段),这个表单是使用AJAX发送的。我有这种形式5输入:

  • 文本输入:用户名,由远程单独的PHP脚本验证 - 它检查该用户是否存在于不同站点的数据库中,如果存在,还检查该用户是否指定了某个用户数据,但这不是很重要

  • 2次单选按钮(我的意思是2x 2单选按钮),在PHP中验证(稍后代码)

  • 2次PickAColor表单,使用PHP仅使用regexp进行六色表验证

我有一个问题。有没有办法在PHP中以更多,复杂的方式检查这些数据?因为,正如我所说,我以类似的方式验证它们:

if($period != "3month" && $period != "7day") {
  echo '<div class="alert">Wrong period!</div>';
  exit;
}

实际上我现在写的这个表格相当简短,但我也有一些非常大的表单,而如果就像上面那样,它甚至可以占用50行,而且非常糟糕。其中大多数在 if 中都有类似的表达式,这意味着我检查表单发送的值是否在表单提供的可能选项列表中(有人可以更改 value 参数) Firebug并称自己为黑客......)。这很复杂,我不知道怎么说,但我想你了解我。那么,再一次 - 是否有任何意义在PHP中验证它,如果是这样,有没有更好的方法来验证它?或许你还有其他一些建议?非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你必须认为你的用户可以在那里提交任何内容,并使代码更清晰,更加面向MVC(并且可重用),你需要在app端进行验证,jQuery中的泛型函数只是向用户显示错误,所以我建议你做一个发送到你的php应用程序的表格的ajax帖子,一个api控制器,重新获取表单值,使用模型验证并返回带有jew表单值的对象(如果你需要清理)每个字段有任何错误,然后你只需输出json:

{
    errors: {
        name: "Already used name",
        field2: "Some bad text provided"
    }
}

然后,您只需遍历错误并设置为每个错误文本的已存在的占位符,如

<spam id="name-error" class="error"></spam>
<input type="text" name="name" value=""/>

然后您有一个验证代码,您可以在提交表单时重复使用。