【发布时间】:2010-09-28 02:21:24
【问题描述】:
我在 php 中有一个提交页面,其中包含一个指向同一页面的 html 表单。我希望能够检查表单中的必填字段是否未填写,以便通知用户。我想知道如何分别使用 php 和 javascript 来做到这一点。但是,我想这是一个常见问题,因此欢迎任何其他答案。
【问题讨论】:
标签: php javascript validation forms
我在 php 中有一个提交页面,其中包含一个指向同一页面的 html 表单。我希望能够检查表单中的必填字段是否未填写,以便通知用户。我想知道如何分别使用 php 和 javascript 来做到这一点。但是,我想这是一个常见问题,因此欢迎任何其他答案。
【问题讨论】:
标签: php javascript validation forms
检查你的 php 的发布部分
if(isset($_POST['save']))
{
$fields=array();
$fields['Nimi'] = $_POST['name'];
$fields['Kool'] = $_POST['school'];
$fields['Aadress'] = $_POST['address'];
$fields['Telefon'] = $_POST['phone'];
$fields['Email'] = $_POST['email'];
foreach ($fields as $key => $val)
{ if(trim($val)=='')
{ $errmsg=$key." is not filled!";
break;
}
}
}
if($errmsg == '')
{ //do your saving here
exit();
}
if(!isset($_POST['save']) || $errmsg != '')
{ //show your form here
// and make it to return to the same page on submit
//<input name="save" type="submit" value="Save" onclick="return true;">
}
【讨论】:
就 JS 而言,您必须在提交之前进行检查。通常这涉及到将一些验证函数绑定到表单的 onsubmit 事件触发器,并且该验证函数将包含对您感兴趣的每个字段的一些测试。
大多数 JS 库都有验证实现,可以为您完成大部分工作,这听起来对您来说可能是个好主意。谷歌搜索“客户端验证”将产生无限的结果,但这(我与库无关,请自行阅读和选择)应该让你开始*:
http://blog.jquery.com/2007/07/04/about-client-side-form-validation-and-frameworks/
http://tetlaw.id.au/view/blog/really-easy-field-validation-with-prototype/
http://dojotoolkit.org/book/dojo-book-0-4/part-4-more-widgets/forms/validation
*这是教你钓鱼计划
【讨论】:
为了额外的功劳,一旦您从 Riho 和 anakata 的回答中知道如何在 PHP 和 JavaScript 中执行此操作,然后构建一种以单一表单定义字段约束的方法,该表单既可以呈现为 JavaScript 以进行客户端验证,也可以在服务器上运行。
由于您需要两者(为了用户方便而需要客户端,服务器端因为我们现在已经非常信任客户端了),因此从单一基础架构支持两者似乎是一个不错的主意。
【讨论】:
LiveValidation 库会为您提供很多帮助: http://www.livevalidation.com/
【讨论】: