Codeigniter 2在一个页面上形成validation_errors问题

Udd*_*ers 6 php forms codeigniter

在我的一个网站上,我在一个页面上有两个表单,我遇到了问题,validation_errors();基本上发生了什么,是我检查错误的一种表单,如果有任何错误,我正在做一些样式来转标签为红色,其他形式如何只显示错误使用echo validation_errors();.当我提交不显示错误的表单时,只是错误样式验证错误显示在表单中.我怎么能阻止这个?

Wes*_*rch 23

您的问题有点难以阅读,但如果我理解正确 - 您无法从一个控制器验证2个单独的表单,或者处理来自不同表单的错误的问题,使用validation_errors()afaik打印所有错误:

在运行验证之前,请检查是否存在隐藏字段,表单唯一的字段,或者您可以检查特定提交按钮的值.

<form>
<input type="hidden" name="form1" value="whatever">
<input name="form1_email" />
<input type="submit" value="Submit Form 1" />
</form>
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用任何这些方法来检查提交的表单(此示例检查是否提交了"form1"):

<?php
// Choose one:
if ($this->input->post('form1')): // check the hidden input
if ($this->input->post('form1_email')): // OR check a unique value
if ($this->input->post('submit') == 'Submit Form 1'): // OR check the submit button value

    if ($this->form_validation->run()):

        // process form

    else:
            // Create a variable with errors assigned to form 1
            // Make sure to pass this to your view
            $data['form1_errors'] = validation_errors();
    endif;

endif;
// Do same for form 2
Run Code Online (Sandbox Code Playgroud)

然后在您的视图中,而不是使用validation_errors()您将使用:

if (isset($form1_errors)) echo $form1_errors; // Print only form1's errors
Run Code Online (Sandbox Code Playgroud)

如果这没有帮助让我知道,并通过发布您的代码澄清您的问题.