如何在PHP编码器中编辑时使验证字段可选


how to make a validation field optional when edit in php codeigniter?

我有一个表单要添加和更新。我想把一个字段显示为可选的,比如当我添加时它必须显示验证错误,当编辑相同字段时不会询问验证错误。下面是代码

$this->load->library('form_validation');
            $this->form_validation->set_rules('title', 'Job Title', 'trim|required|min_length[5]');
            $this->form_validation->set_rules('description', 'Job Description', 'trim|required');
            $this->form_validation->set_rules('qualification', 'Job Qualification', 'trim|required');
            $this->form_validation->set_rules('mskills', 'Job Mandatory Skills', 'trim|required');
            $this->form_validation->set_rules('askills', 'Job Advantage Skills', 'trim');
            $this->form_validation->set_rules('minexp', 'Job Min Experience', 'trim|required');
            $this->form_validation->set_rules('maxexp', 'Job Max Experience', 'trim|required');
            $this->form_validation->set_rules('postedon', 'Job Posted On', 'trim|required');
            $this->form_validation->set_rules('postedby', 'Job Posted By','trim|required');
            $this->form_validation->set_rules('salary', 'Job Salary', 'trim|required');
            if($this->form_validation->run() == FALSE)
            {
                echo json_encode(array('st'=>0, 'msg' => validation_errors()));
            }

这里我想显示可选字段

$this->form_validation->set_rules('askills', 'Job Advantage Skills', 'trim');

您需要创建一个检查条件来编辑或添加触发器。创建一个隐藏字段,检查它的编辑模式或添加模式,并传递值形式隐藏

<input type='hiddden' name='checkform' value='add/edit'> // value change on runtime

然后检查

if($this->input->post('checkform') == 'add')
  $this->form_validation->set_rules('askills', 'Job Advantage Skills', 'trim|required');
else 
  $this->form_validation->set_rules('askills', 'Job Advantage Skills', 'trim');