746   CodeIgniter PHP

form_validation验证后,validation_errors()会返回错误信息,不过是经过字符转换的,形式如下

<p>username is required.</p>
<p>password is required.</p>

在前端这些错误信息会并排显示,可是我想对应input框架下面显示,类似这样

QQ图片20160121224659

因此需要获取form_validation的error_array,而不是error_string

查看validation_errors的源代码,找到以下函数


	/**
	 * Get Array of Error Messages
	 *
	 * Returns the error messages as an array
	 *
	 * @return	array
	 */
	public function error_array()
	{
		return $this->_error_array;
	}

就是它啦,在自己的helper类中添加一个方法调用这个error_array即可,具体调用可参考validation_errors()的方法,这个方法在system/helpers/form_helper.php中,代码如下


if ( ! function_exists('form_error_array'))
{

	function form_error_array()
	{
		if (FALSE === ($OBJ =& _get_validation_object()))
		{
			return '';
		}
                // 获取error_array数组
		return $OBJ->error_array();
	}
}

在view中就可以通过form_error_array()方法获取表单验证错误信息的数组,然后根据数组的key,显示到具体的input框下面




Leave a Reply

Your email address will not be published. Required fields are marked *