我有一个表单提交。当我点击提交按钮时,将检查必填字段,如果字段为空,我将使用javascript打开一个弹出窗口,显示错误消息。所以一旦我关闭弹出窗口,我就不会回到上一页,而是显示一个白色的空白屏幕。
我的验证和打开弹出窗口的代码是:
<?php
if (isset($_POST['submit']))
{
if ($task == '' || $comments == '')
{
// generate error message
print "<script type='text/javascript'>";
print "window.open('error.php','new_window1','status=1,scrollbars=1,resizable=0,menu=no,width=320,height=220');";
print "</script>";
}
else
{
$sql3= "INSERT INTO work (task, comments, assignee, type, priority, dataum1, dataum2, status) VALUES ('$task', '$comments', '$assignee', '$type', '$priority', '$dataum1', '$dataum2', '$status')";
mysqli_query($mysqli,$sql3) or die(mysqli_error($mysqli));
}
}
?>
由于您使用的是JS弹出窗口,您可能希望使用JavaScript在客户端进行强制性检查(不过也要保持服务器端检查),然后在没有填写必要字段的情况下阻止表单发布。
将表单数据发布到拥有表单的同一页面。并将上述验证代码添加到该页面的顶部。因此,当验证错误发生时,用户会看到一个弹出窗口,其中包含错误消息,但他在表单所在的同一页面上。