在每个字段旁边显示表单验证错误 [英] Display form validation errors next to each field

查看:139
本文介绍了在每个字段旁边显示表单验证错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个用php编写的简单联系表单,几乎所有的设置都是我想要的,现在除了现在,所有验证错误都显示在表单顶部的div上,我想要更改下面的代码,以便它们显示在导致错误的表单字段旁边,但我不知道如何完成此操作,因此我请专家提供一些建议。



PHP验证例程

  $ frm_valid = new Validate(); 

if(isset($ _ POST ['submit'])){

$ rules = array(
array('Type'=>'Required' ,'Var'=> $ _ POST ['name'],'Msg'=&';'Name field is required。'),
array('Type'=&';'''''Var'=' > $ _ POST ['email'],'Msg'=>'需要电子邮件地址字段'),
array('Type'=&'Email','Var'=> $ _ POST '''','Msg'=>'您的电子邮件地址格式无效'),
array('Type'=&';'Required','Var'=> $ _ POST ['subject '','Msg'=>'Subject field is required。'),
array('Type'=>'Required','Var'=> $ _ POST ['message'],'Msg '=>'消息字段是必需的'),
);


$ result = $ frm_valid->有效($ rules);

if(is_array($ result)){
//打印验证错误(如果有)
echo('< div>< b>表单不能< / b>< ul>');

foreach($ result as $ key => $ val){
echo'< ; li>'。$ val。'< / li>';
}
echo('< / ul>< / div>< br />');
}
else {
//做别的事。
}
}

表单HTML

 < form action =< ;? echo htmlentities($ _ SERVER ['PHP_SELF']); ?>method =post> 
< input type =textname =namevalue =/>< br />

< ; input type =textname =emailvalue =/>< br />

< input type =textname =subjectvalue = />< br />

< textarea name =messagecols =80rows =7>< / textarea>< br />

< / form>


解决方案

您需要为此更改整个代码!!!结构可能是这样的:

 < form action =<?php echo htmlentities($ _ SERVER ['PHP_SELF']); > $> 
< ul>
< li>
< label>
< span>名称< / span>
<输入type =textname =name/>
< small class =errorText><?php echo($ _POST [name] ==)?这个字段是必填:;?>< / small>
< / label>
< / li>
< li>
< label>
< span>电子邮件< / span>
<输入类型=textname =email/>
< small class =errorText><?php echo ($ _POST [email] ==)?此栏位为必填项:;?>< / small>
< / label>
< / li>
< li>
< label>
< span> Subject< / span>
< input type =textname =subject/>
< small class =errorText><?php echo($ _POST [subject] ==)? 这是必填栏 : ; ?>< /小>
< / label>
< / li>
< li>
< label>
< span>讯息< / span>