开发者

CodeIgniter field validation based on condition

If the first field called sendEmail has value ="Yes" the rest of the fields are to be validated... I have this set_rules defined in the form_validation.php file in the config folder..

$config = array(
array(
      'field'   => 'sendEmail',
      'label'   => 'Send Email',
      'rules'   => 'required'
     ),
     array(
       'field'   => 'email',
       'label'   => 'Email',
       'rules'   =开发者_如何学JAVA> 'required'
     ),
     array(
       'field'   => 'first_name',
       'label'   => 'First Name',
       'rules'   => 'required'
     ),   
    array(
      'field'   => 'last_name',
      'label'   => 'Last Name',
      'rules'   => 'required'
    )
);

but email, first_name and last_name fields are to be validated only if sendEmail has value="Yes".

Not sure how to do this, can someone please help me with this? thanks


Do the conditions like this in your controller:

if ($this->input->post('sendEmail') == 'Yes'){

  $this->form_validation->set_rules('email', 'Email', 'required');
  ... [etc]
}


The validation only runs when you call $this->form_validation->run(), so just write an if statement before that. Something like this:

if ($this->input->post("sendEmail") == 'Yes') {
    $this->form_validation->set_rules($config);
    if ($this->form_validation->run() == FALSE)
    {
        // failed validated
    }
    else
    {
        // passed validation
    }
} else {
    // never attempted validation
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜