codeigniter打印表单特定的验证错误

时间:2012-02-02 06:11:34

标签: php codeigniter codeigniter-2

我在页面上有2个表单,例如:'create_user'和'update_user'我想显示特定于表单上方的每个表单的验证错误。我的意思是,我想在其上方的“create_user”表单中显示验证错误,对于“update_user”也是如此。

现在,如果我提交更新,表单错误将显示在两个表单之上。 有什么像

<? echo validation_errors("create_user");   ?>

2 个答案:

答案 0 :(得分:4)

您可以执行以下操作:


//pass validation_errors as data to your view from your controller, like
//in your controller
if ($this->form_validation->run()) {  //form create_user form
  //process
}
else {
   $data['create_user_form_errors'] = validation_errors();
}
//and for second form update_user
if ($this->form_validation->run()) {  //form create_user form
  //process
}
else {
   $data['update_user_form_errors'] = validation_errors();
}

//then in your view
if (isset($create_user_form_errors)) echo $create_user_form_errors; //show above first form
//and
if (isset($update_user_form_errors)) echo $update_user_form_errors; //show above second form

这样的东西可以用于显示基于多个表单的错误。希望它有所帮助

答案 1 :(得分:2)

最简单的方法是:

  1. 为每个表单传递某种形式识别隐藏字段
  2. 将相同的隐藏字段传递给视图错误状态,并使用基本IF条件在正确的位置运行validation_errors()
  3. 您可能会以某种方式扩展验证类以执行您要求的操作,但这将是一个非常具体的实现,并且在框架中几乎没用(这就是为什么CI不会&#34;知道&#34;默认情况下这样做)。使用扩展类增加的复杂性可能会抵消不仅仅在视图中使用基本逻辑的任何好处。