我在php中有一个提交页面,其中包含指向同一页面的html表单。我希望能够检查表单中的必填字段是否未填写,以便我可以通知用户。我想知道如何使用php和javascript各自做到这一点。但是,我认为这是一个常见问题,所以欢迎任何其他答案。
答案 0 :(得分:2)
签入部分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;">
}
答案 1 :(得分:1)
为了获得额外的功劳,一旦您知道如何在Riho和annakata的答案中使用PHP和JavaScript进行操作,那么构建一种在单个表单中定义字段约束的方法,可以将其呈现为用于客户端验证的JavaScript和在服务器上运行。
既然你需要两者(客户端为了方便用户,服务器端,因为我们现在真的非常信任客户端),从单一基础架构支持这两者似乎是一个不错的主意。 / p>
答案 2 :(得分:0)
就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
*这是教你钓鱼的计划
答案 3 :(得分:0)
LiveValidation库可以帮到你很多: http://www.livevalidation.com/