如果名为sendEmail
的第一个字段有value ="Yes"
,则其他字段将被验证...
我在配置文件夹中的set_rules
文件中定义了此form_validation.php
。
$config = array(
array(
'field' => 'sendEmail',
'label' => 'Send Email',
'rules' => 'required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required'
),
array(
'field' => 'first_name',
'label' => 'First Name',
'rules' => 'required'
),
array(
'field' => 'last_name',
'label' => 'Last Name',
'rules' => 'required'
)
);
但email
,first_name
和last_name
字段仅在if
sendEmail
有value="Yes"
时才会被验证。
不知道怎么做,有人可以帮我这个吗?
感谢
答案 0 :(得分:5)
在你的控制器中执行这样的条件:
if ($this->input->post('sendEmail') == 'Yes'){
$this->form_validation->set_rules('email', 'Email', 'required');
... [etc]
}
答案 1 :(得分:1)
验证仅在您调用$this->form_validation->run()
时运行,因此请在此之前编写if语句。像这样:
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
}