Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多表单验证codeigniter冲突_Php_Codeigniter - Fatal编程技术网

Php 多表单验证codeigniter冲突

Php 多表单验证codeigniter冲突,php,codeigniter,Php,Codeigniter,可能重复: 我的页面中有两张表格。我需要一次验证1个,但我认为存在冲突。请看: 当我提交其中一个表单时,两个表单都显示相同的错误消息 我使用validation\u errors()来显示消息。如何一次验证表格1 这是密码 public function update_user_info(){ $this->form_validation->set_rules("firstname","First Name","required"); $this-&g

可能重复:

我的页面中有两张表格。我需要一次验证1个,但我认为存在冲突。请看:

当我提交其中一个表单时,两个表单都显示相同的错误消息

我使用
validation\u errors()
来显示消息。如何一次验证表格1

这是密码

public function update_user_info(){ 
    $this->form_validation->set_rules("firstname","First Name","required");     
    $this->form_validation->set_rules("lastname","Last Name","required"); 
    $this->form_validation->set_rules("middlename","Middle Name","required"); 
    if($this->form_validation->run()===false){ 
        //wrong 
    } 
    else { //correct } 
}

如果每个表单都有不同的验证错误,可以检查
验证\u错误
的输出


据我所知,
validation\u errors
只允许您更改错误的分隔符,而不允许更改其他内容。但是,您可以尝试如下方式显示单个表单错误:

您可以为每个表单获取一个隐藏输入

First Form:
<input type="hidden" name="form" value="form1" />

Second Form:
<input type="hidden" name="form" value="form2" />
$config['form1'] = array(
               array(
                     'field'   => 'username', 
                     'label'   => 'Username', 
                     'rules'   => 'required'
                  ),
               array(
                     'field'   => 'password', 
                     'label'   => 'Password', 
                     'rules'   => 'required'
                  ),
            );

$config['form2'] = array(
               array(
                     'field'   => 'email', 
                     'label'   => 'Email', 
                     'rules'   => 'required'
                  ),
            );

Now check which hidden field posted

$form = $this->input->post('form')


Now you can set rules as below

$this->form_validation->set_rules($config[$form]);

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

    // process form

else:
        $data[$form.'_errors'] = validation_errors();
endif;
现在在您的视图文件中

if (isset($form1_errors)) echo $form1_errors;
if (isset($form2_errors)) echo $form2_errors;

我刚刚遇到了这个问题。 我的解决办法是:

1.首先设置第一个提交按钮名称='更新信息'

2.第二次设置第二个提交按钮名称='change_password'

3.上次更改您的更新用户信息()

我认为这是解决问题的最简单方法


祝你好运。

http://stackoverflow.com/questions/5802729/codeigniter-2-forms-on-one-page-validation-errors-problem
public function update_user_info(){$this->form_validation->set_rules(“firstname”、“First Name”、“required”);$this->form_validation->set_rules(“lastname”、“Last Name”、“required”);$this->form_validation->set_rules(“middlename”、“middlename”、“required”);如果($this->form_validation->run()==false){//error}否则{//correct}}谢谢!:)它就像一个符咒一样工作!
public function update_user_info(){ 
    if (isset ($_POST['update_info'])) {
        $this->form_validation->set_rules("firstname","First Name","required");     
        $this->form_validation->set_rules("lastname","Last Name","required"); 
        $this->form_validation->set_rules("middlename","Middle Name","required"); 
        if($this->form_validation->run()===false){ 
            //wrong 
        } 
        else { //correct }             
    }
    else if (isset ($_POST['change_password'])){
        form_validation of your change password
    }