我做的提交表单,多数民众赞成的PHP检查,我想向用户展示他们忘记填写所有字段的PHP检查所有空的输入列表。我也在使用jQuery,但用户可以禁用它,而且您确实需要服务器端检查表单。如何显示对形式
的事情是,如果有6个必填字段,他们提交的形式与他们的2个空,代码只显示第一位的,之后便再次提交,它会显示他们的第二个。你会建议做什么?
下面是代码:
if (isset($_POST['submit'])){
$message = "";
if (trim($_POST['ign'])){
if (trim($_POST['god'])){
if (trim($_POST['replay_id'])){
if (trim($_POST['map_type'])){
if (trim($_POST['time_min']) AND trim($_POST['time_sec'])){
if (trim($_POST['description'])){
// Submit the form
}else{
$message .= "<li>Description is empty</li>";
}
}else{
$message .= "<li>Time not specified</li>";
}
}else{
$message .= "<li>Match type not specified.</li>";
}
}else{
$message .= "<li>Replay ID not specified.</li>";
}
}else{
$message .= "<li>God was not specified.</li>";
}
}else{
$message .= "<li>In game name was not specified!</li>";
}
if (!empty($message)){
$message = "<div style='text-align:left; display: inline-block;'><ul>".$message."</ul></div>";
}else{
$message = "Submit succesfull";
}
echo "<div id='close-message'><div class='admin-message'>$message</div></div>";
}
这样做的,我能想到的,如果这个代码的唯一的其他方式:
if (isset($_POST['submit'])){
$message = "";
$pass = TRUE;
if (!trim($_POST['ign'])){ $message .= "<li>In game name was not specified!</li>"; $pass = FALSE; }
if (!trim($_POST['god'])){ $message .= "<li>God was not specified.</li>"; $pass = FALSE; }
if (!trim($_POST['replay_id'])){ $message .= "<li>Replay ID not specified.</li>"; $pass = FALSE; }
if (!trim($_POST['map_type'])){ $message .= "<li>Match type not specified.</li>"; $pass = FALSE; }
if (!trim($_POST['description'])){ $message .= "<li>Description is empty</li>"; $pass = FALSE; }
if (!trim($_POST['time_min']) AND trim($_POST['time_sec'])){ $message .= "<li>Time not specified</li>"; $pass = FALSE; }
if ($pass){
$message = "Submit succesfull";
// Submit the form
}else{
$message = "<div style='text-align:left; display: inline-block;'><ul>".$message."</ul></div>";
}
echo "<div id='close-message'><div class='admin-message'>$message</div></div>";
}
是否有其他办法做到这一点?同样,纯粹的PHP,jQuery在那里,但它可以被禁用,HTML5也不适用于所有浏览器。
谢谢。
等什么?此代码如何将错误消息添加到错误列表中?或者继续实际上意味着,它会忽略其余的代码,并立即开始在数组中的新项目?此外,Isnt循环比在我的第二个代码中使用这些ifs更具资源要求? Thanyway,谢谢你的回应,我没有想到阵列。 – MiChAeLoKGB 2015-02-23 20:58:19
是的,这是'继续'如何工作。至于你的其他问题,我会说,在处理这种代码时,循环和重复if语句之间的纳秒性能差异是不成问题的。可读性,可维护性和清晰的结构更重要。 – mhall 2015-02-23 21:17:06
啊,我其实从来没有使用过继续,所以从来没有打扰到它究竟发生了什么:D另外,这是真的,所以病态可能使用数组:)谢谢。 – MiChAeLoKGB 2015-02-23 21:29:55