在Codeigniter中选择框验证

S.S*_*Sid 4 php codeigniter codeigniter-form-helper

我是Codeigniter的新手,我在选择框验证方面遇到了一些麻烦.我想要开始时的默认选择值.

<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如何在表单中创建必填字段并在选择零"0"值时显示错误消息.

Dam*_*rsy 18

这将标记为"已选择"的条目为...默认选中.你想要一个多选下拉菜单,对吗?

<select name="schoolGroups[]" multiple="multiple">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>
Run Code Online (Sandbox Code Playgroud)

至于验证,您可能想要构建自己的验证规则:

你的控制器的方法:

//...
$this->form_validation->set_rules('schoolGroups','School groups','required|callback_check_default');
$this->form_validation->set_message('check_default', 'You need to select something other than the default');

//...
Run Code Online (Sandbox Code Playgroud)

添加其他方法:

function check_default($array)
{
  foreach($array as $element)
  {
    if($element == '0')
    { 
      return FALSE;
    }
  }
 return TRUE;
}
Run Code Online (Sandbox Code Playgroud)

如果您只想要一个选择(无法多选),那就更容易了:

HTML:

<select name="schoolGroups">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>
Run Code Online (Sandbox Code Playgroud)

验证方法:

 $this->form_validation->set_rules('schoolGroups','School groups','required|callback_check_default');
  $this->form_validation->set_message('check_default', 'You need to select something other than the default');
Run Code Online (Sandbox Code Playgroud)

打回来:

function check_default($post_string)
{
  return $post_string == '0' ? FALSE : TRUE;
}
Run Code Online (Sandbox Code Playgroud)