我制作了一个注册表单,在提交检查表时,用户是否填写了所有字段,用户名是否已被删除,或者电子邮件是否已被使用。所有这些验证都运行良好。但是当提交表单时,让我们说用户提交的内容无效时,错误消息当然会在不同的页面上一次显示一个。我想让这些消息一次出现在与表单相同的页面上,因此它更加用户友好。我试图将错误消息变为变量,然后在表数据单元格中回显该变量,但变量是" undefined"。我试图将变量设为全局变量,但我在执行此操作时遇到了麻烦。谁能给我一些见解?谢谢...以下是我的代码示例以及我想要做的事情。
PHP脚本......
if($numrowsusername != 0)
{
$username_errormsg ='This user name is taken';
}
索引页面,其中包含我希望消息显示的表单...
<td align ='left'><input type ='text' name = 'usernamereg' placeholder = 'Username' class = 'username2' /></td>
</tr>
<tr>
<td><?php echo $username_errormsg; ?></td>
</tr>
答案 0 :(得分:0)
由于您仅在错误发生时将错误分配给变量$username_errormsg
,因此只要该错误不存在,您的变量就不会被确定。因此,当您收到错误时,echo $username_errormsg
就可以了,但在此之前通知将保留。您可以做的是检查变量是否由函数isset()
定义。它看起来像这样:
<?php if(isset($username_errormsg)) echo $username_errormsg; ?>
答案 1 :(得分:0)
您正在回显错误,而不检查是否确实发生了错误。您可以使用!empty($username_errormsg)
函数来解决此问题,该函数将检查变量是否已设置并且还将检查其是否为空。
<td align ='left'><input type ='text' name = 'usernamereg' placeholder = 'Username' class = 'username2' /></td>
</tr>
<tr>
<td>
<?php
if(!empty($username_errormsg)){
echo $username_errormsg;
}
?>
</td>
</tr>
要在同一页面上回显错误,您必须使用表单中的空action=""
字段在同一页上发布值,或使用 JavaScript 在将数据发布到下一页之前为您进行验证。 JavaScript验证只是为了方便用户,您可以使用PHP在下一页内部检查数据是否是您需要的数据
如果卡片中有JavaScript,您可以查看jQuery Forms Plugin和jQuery Validation Plugin以便轻松进行验证。
答案 2 :(得分:0)
制作像这样的 然后循环它。if($numrowsusername != 0)
{
$error_message['username'] ='This user name is taken';
}
$error_message['username']="This user name is taken";
$error_message['email']="email alreasy exists";
foreach($error_message as $key=>$value){
echo $error_message[$key'];
echo '<br />';
}