4

私はCodeigniterを初めて使用し、選択ボックスの検証に問題があります。最初にデフォルトの選択値が必要です。

<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>

フォームに必須フィールドを作成し、ゼロ「0」の値を選択するとエラーメッセージを表示するにはどうすればよいですか。

4

3 に答える 3

18

これにより、デフォルトで「選択済み」としてマークされたエントリが...選択されます。複数選択のドロップダウンが必要ですよね?

<select name="schoolGroups[]" multiple="multiple">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>

検証に関しては、独自の検証ルールを作成することをお勧めします。

コントローラの方法:

//...
$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');

//...

この他のメソッドを追加します。

function check_default($array)
{
  foreach($array as $element)
  {
    if($element == '0')
    { 
      return FALSE;
    }
  }
 return TRUE;
}

単一の選択だけが必要な場合(複数選択する機能はありません)、さらに簡単です。

html:

<select name="schoolGroups">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>

検証を伴う方法:

 $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');

折り返し電話:

function check_default($post_string)
{
  return $post_string == '0' ? FALSE : TRUE;
}
于 2011-10-11T05:28:06.007 に答える
3

これを行う正しい方法は、デフォルトオプションの値を空に設定することです。次に、テキストフィールドのような単純なform_validationルールを使用できます。

<select name="schoolGroups">
  <option value="">Select User Group</option>
  <option value="1">Admin</option>
</select>

$this->form_validation->set_rules('schoolGroups','School groups','required');
于 2015-12-10T10:52:04.440 に答える
1

これは私のために働いた。

景色

<select name="schoolGroups[]" multiple="multiple">
    <option value="">Select User Group</option>
    <option value="1">Admin</option>
</select>

コントローラー

$this->form_validation->set_rules('schoolGroups','School groups','callback_check_default');

折り返し電話

function select_validate()
{
    $choice = $this->input->post("schoolGroups");
    if(is_null($choice))
    {
        $choice = array();
    }
    $schoolGroups = implode(',', $choice);

    if($schoolGroups != '') {
        return true;
    } else {
        $this->form_validation->set_message('select_validate', 'You need to select a least one element');
        return false;
    }
}
于 2016-06-28T18:33:46.203 に答える