首页 > 解决方案 > 多个 $this->form_validation->run() 在 codeigniter 中不起作用

问题描述

请帮助我,以验证地址。如果我选择单选按钮办公室,则需要提交办公室地址。如果我选择单选按钮 Residential,然后选择 Resi。需要提交的地址。

单选按钮名称="邮寄"

在这里我分享控制器代码:

public function addMemberForm(){
if(!$this->form_validation->run('add_form')){
    $this->form_validation->set_error_delimiters('<span style="color:red">','</span>');     
    $this->load->view('admin_panel/add-member');
}
elseif($post['mailing'] == 'office'){
    if(!$this->form_validation->run('office_address')){                        
        $this->form_validation->set_error_delimiters('<span style="color:red">','</span>');
        $this->load->view('admin_panel/add-member');
    }
}
elseif($post['mailing'] == 'residential'){
    if(!$this->form_validation->run('residential_address')){
        $this->form_validation->set_error_delimiters('<span style="color:red">','</span>');
        $this->load->view('admin_panel/add-member');
    }       
}
else{
    $this->session->set_flashdata('add_member_msg','<span class="alert alert-success">Member insert successfully</span>');
    return redirect('admin/add_member');
}

}

这里我分享 config->form_validation.php 代码:

$config = [
    'add_form' =>[   
        [
            'field' => 'mailing',
            'label' => 'Mailing Address',
            'rules' => 'required'
        ],
    ],
    'office_address' =>[
        [
            'field' => 'office_address',
            'label' => 'Office Address',
            'rules' => 'required'
        ],
    ],
    'residential_address' =>[
        [
            'field' => 'resi_address',
            'label' => 'Residential Address',
            'rules' => 'required'
        ],
    ],
];

下面我分享表格照片:在此处输入图像描述

标签: phpcodeigniter

解决方案


我在我的问题上得到了解决方案。

从 config->form_validation.php 中删除 office_address 和住宅地址

您可以在控制器中验证办公室和居住地址,请参见下面的代码:

public function addMemberForm(){

$validation_error = array();

if(!$this->form_validation->run('add_form')){
    $validation_error[] = $this->form_validation->set_error_delimiters('<span style="color:red">','</span>');
}
elseif($this->input->post('mailing') == 'office'){
    $this->form_validation->set_rules('office_address','Office Address','required');
    if($this->form_validation->run() == false){
        $validation_error[] = $this->form_validation->set_error_delimiters('<span style="color:red">','</span>');
    }
}
elseif($this->input->post('mailing') == 'residential'){
    $this->form_validation->set_rules('resi_address','Residential Address','required');
    if($this->form_validation->run() == false){
        $validation_error[] = $this->form_validation->set_error_delimiters('<span style="color:red">','</span>');
    }
}


if(count($validation_error)){
    $this->load->view('admin_panel/add-member');
}
else{
    $this->session->set_flashdata('add_member_msg','<span class="alert alert-success">Member insert successfully</span>');
    return redirect('admin/add_member');    
}
}

推荐阅读