3

我想知道是否有人可以帮助我解决这个问题。我目前正在尝试将 tank auth 集成到我的 codeigniter 站点中。我正在慢慢到达那里,但遇到了一个小绊脚石,因为当我将错误消息从显示为 html 视图的一部分移动到 javascript 警报时,它们仍在打印出错误消息周围的段落标签。

我认为作为数组/或多维数组传递给我的登录表单的错误消息是由以下代码行在控制器中生成的:

$data['errors'] = array();
foreach ($errors as $k => $v)   $data['errors'][$k] = $this->lang->line($v);

这是我显示错误消息的代码:

if ((isset($errors[$login['name']]))||(isset($errors[$password['name']]))||(form_error($login['name']))||(form_error($password['name']))){
        echo'<script type="text/javascript">alert("';
}
echo form_error($login['name']);
echo isset($errors[$login['name']])?$errors[$login['name']]:'';
echo form_error($password['name']); 
echo isset($errors[$password['name']])?$errors[$password['name']]:'';
if ((isset($errors[$login['name']]))||(isset($errors[$password['name']]))||(form_error($login['name']))||(form_error($password['name']))){
        echo'")</script>';
}

现在我的主要问题是如何删除 paragreaph 标签,并且我在 codeigniter 文档中找到了一个线索: http ://codeigniter.com/user_guide/libraries/file_uploading.html 他们这里的关键部分是它说你可以设置通过执行以下操作,上传脚本上的错误的分隔符:

$this->upload->display_errors('<p>', '</p>');

但我不知道如何以及在何处将其应用于坦克身份验证。

我还有第二个问题,我会感谢任何可以回答的人,我对显示错误消息的代码有点困惑。例如:

echo form_error($password['name'])

有人可以向我解释一下吗,它一开始没有 $ 所以不是变量所以它是怎么回事,我真正想要了解的是如何简化我检查错误消息的逻辑,因为它目前非常冗长,并且有很多错误消息需要处理。

我很感激这里有很多事情要处理,但任何帮助/解释都将不胜感激。

4

1 回答 1

20

要删除包装错误消息的标签,您必须set_error_delimiters()使用 2 个空字符串作为参数调用表单验证对象的方法。

$this->form_validation->set_error_delimiters('', '');

有关此的更多信息:https ://codeigniter.com/user_guide/libraries/form_validation.html#chang-the-error-delimiters

至于你的第二个问题,我不确定你实际上在问什么。它只是一个函数调用,调用的返回值将输出给用户。

于 2012-04-14T14:41:20.273 回答