$this->form_validation->set_rules('newusername', 'newfullname', 'newcity','newemail');
//是set_rules正确。如果设置了任何一个具有以上名称的输入字段,我想要。它应该通过验证。如果有任何更正,请帮助我。
答案 0 :(得分:1)
您可能应该再次阅读本手册。如果您希望至少填写其中一个,则需要编写自己的验证。
使用以下规则:
public $rules = array(
'newusername' => array(
'field' => 'newusername',
'label' => 'New User Name',
'rules' => 'trim|xss_clean|callback_needone'
),
'newfullname' => array(
'field' => 'newusername',
'label' => 'New Full Name',
'rules' => 'trim|xss_clean|callback_needone'
),
'newcity' => array(
'field' => 'newcity',
'label' => 'New City',
'rules' => 'trim|xss_clean|callback_needone'
),
'newemail' => array(
'field' => 'newemail',
'label' => 'New Email',
'rules' => 'trim|xss_clean|callback_needone'
)
)
在你的控制器中你需要写
public function needone(){
if ( empty($this->input->post('newusername')) && empty($this->input->post('newfullname')) && empty($this->input->post('newcity')) && empty($this->input->post('newmail')) ) {
$this->form_validation->set_message('needone', 'At least one field must be entered');
return FALSE;
}
return TRUE;
}
将规则放在任何表单的字段上,或者将所有字段放在hilite所在组中,这取决于你。
答案 1 :(得分:0)
表单中的每个输入字段都需要它自己的验证规则。这应该是这样的;
$this->form_validation->set_rules('field name', 'human name', 'rules');
https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#validationrules
所以,你会有4个set_rules函数,像这样;
$this->form_validation->set_rules('newusername', 'New username', 'trim|xss_clean|required');
$this->form_validation->set_rules('newfullname', 'New full name', 'trim|xss_clean|required');
$this->form_validation->set_rules('newcity', 'New City', 'trim|xss_clean|required');
$this->form_validation->set_rules('newemail', 'New Email', 'trim|xss_clean|required');
https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#cascadingrules
以下是规则参考,所有可用规则;
https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#rulereference
现在,要检查是否设置了 ANY 项,我会这样做;
if ($this->input->post('newusername') OR $this->input->post('newusername') OR $this->input->post('newusername') OR $this->input->post('newusername'))
{
// One of them is set
}
else
{
// Nothing is set
}