Php 在输入字段旁边显示错误
我知道在同一个问题上有很多问题,但我太执着了。我很难弄明白出了什么问题。我尝试过谷歌的很多东西,但都没有成功。我试图让验证错误显示在相关输入字段的旁边,而不是仅仅显示在表单顶部。这个表格很大,所以我将只发布一个“样本” HTML格式:Php 在输入字段旁边显示错误,php,html,forms,Php,Html,Forms,我知道在同一个问题上有很多问题,但我太执着了。我很难弄明白出了什么问题。我尝试过谷歌的很多东西,但都没有成功。我试图让验证错误显示在相关输入字段的旁边,而不是仅仅显示在表单顶部。这个表格很大,所以我将只发布一个“样本” HTML格式: <form action="register.php" method="POST"> <table> <th class="topLine"> <label for="for
<form action="register.php" method="POST">
<table>
<th class="topLine">
<label for="form_login" >Login
</th>
<td>
<div class="form_input_bg">
<input type="text" name="username" value="" maxlength="16" size="16"/>
<?php echo $username;?>
</div>
</td>
</tr>
<tr>
<th class="topLine">Password
<p style="font-size:9px;">8-16 Character (only a-Z,0-9)</p>
</th>
<td>
<div class="form_input_bg">
<input type="password" name="pass" value="" maxlength="16" size="16"/>
</div>
</td>
</tr>
<tr>
登录
密码
8-16个字符(仅a-Z,0-9)
PHP验证,恰巧是这样,仍然是一个示例(不想伤害你的眼睛)
我建议您将验证与显示html分开,如下所示:
// validation
$error = array();
if (strlen($username) < 5)
$error['username'] = 'Login must be longer than 4 characters';
// html
<input type="text" name="username" value="" maxlength="16" size="16"/><?php echo $username;?>
<?php if (isset($error['username'])) : ?>
<p class="error"><?php echo $error['username'] ?></p>
<?php endif ?>
<!-- other markup -->
<form>
<table>
<tr>
<td>
<?php
if(strlen($_POST['username'])<5) {
echo '<div class="message">Login must be longer than 4 characters</div>';
}
?>
<!-- login form element -->
</td>
</tr>
<!-- repeat for other form elements -->
</table>
</form>
//验证
$error=array();
if(strlen($username)<5)
$error['username']='登录长度必须超过4个字符';
//html
这两段代码如何相互关联?像这样
<?php
// other code
elseif(strlen($_POST['username'])<5) {
echo '<div class="message">Login must be longer than 4 characters</div></div><p>
// other code
?>
<!-- other markup -->
<form>
<table>
<!-- form elements -->
</table>
</form>
整个代码文件自上而下按顺序处理。将一个元素放在标记的中间某个地方,代码需要代码>回声< /代码>它在标记的那一点。 也许你可以试试这样。
<dl>
<dt>Login:</dt>
<dd><input type="text" name="username" value="" maxlength="16" size="16"/>
<?php echo ($message['username'] == "" ? "" : $message['username']) ?></dd>
<dt>Password:</dt>
<dd><input type="text" name="password" value="" maxlength="16" size="16"/>
<?php echo ($message['username'] == "" ? "" : $message['username']) ?></dd>
</dl>
登录:
密码:
由于布局原因,不应使用选项卡。(定义列表的表格)
对于另一部分,生成一个
<?PHP
$message = array();
...
elseif(strlen($_POST['username'])<=5) {
$message['username']'<div class="message">Login must be longer than 4 characters</div>
?>
试试这个
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
$nameErr = $emailErr = "";
$name = $email = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (strlen($_POST["name"])<5)
{$nameErr = "Username must be longer than 4 characters";}
else
{$name = $_POST["name"];}
if (empty($_POST["email"]))
{$emailErr = "Email is required";}
else
{$email = $_POST["email"];}
}
?>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail: <input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
.错误{color:#FF0000;}
*必填字段
您是否愿意修复实际工作的代码示例,并展示您对如何工作的基本想法?提供的答案都很好,尤其是Andrey的答案。但是我有一个问题,错误不会一次显示出来,我的意思是,如果用户名和电子邮件有无效的输入,它首先显示用户名,在用户验证后,显示另一个电子邮件错误。。我当时如何向用户显示它们呢?你没把我弄明白。我想说的是,我希望这些错误显示在error@user3413809:我的例子在什么方面没有做到这一点?对于每个字段,回显该字段旁边的验证错误。@user3413809为什么不允许您使用
?他们使用了
,但您只需将其更改为
,甚至将其添加到变量->$error['username']='登录长度必须超过4个字符
,我正在尝试。我一会儿给你回电话。不过非常感谢:)使用我的错误样式,通常是和div类,使错误显示在输入表单下面。。任何解决方案??将错误消息放到另一个表列,这样它就会显示在输入的右侧。提供的答案都很好,尤其是Andrey的答案。但我有一个问题,错误不会在时间显示,我的意思是如果用户名和电子邮件有无效的输入,它首先显示用户名,在用户验证后,显示另一个电子邮件错误。。我当时如何向用户显示它们?
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
$nameErr = $emailErr = "";
$name = $email = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (strlen($_POST["name"])<5)
{$nameErr = "Username must be longer than 4 characters";}
else
{$name = $_POST["name"];}
if (empty($_POST["email"]))
{$emailErr = "Email is required";}
else
{$email = $_POST["email"];}
}
?>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail: <input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>