私はCodeigniterを初めて使用し、選択ボックスの検証に問題があります。最初にデフォルトの選択値が必要です。
<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>
フォームに必須フィールドを作成し、ゼロ「0」の値を選択するとエラーメッセージを表示するにはどうすればよいですか。
私はCodeigniterを初めて使用し、選択ボックスの検証に問題があります。最初にデフォルトの選択値が必要です。
<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>
フォームに必須フィールドを作成し、ゼロ「0」の値を選択するとエラーメッセージを表示するにはどうすればよいですか。
これにより、デフォルトで「選択済み」としてマークされたエントリが...選択されます。複数選択のドロップダウンが必要ですよね?
<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;
}
これを行う正しい方法は、デフォルトオプションの値を空に設定することです。次に、テキストフィールドのような単純な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');
これは私のために働いた。
景色
<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;
}
}