オプションが「選択」と等しい場合、CodeIgniterでどのように記述しますか?オプションの選択が必要であるというエラーをスローしますか?
<option>Select</option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>
よろしくお願いします。
オプションが「選択」と等しい場合、CodeIgniterでどのように記述しますか?オプションの選択が必要であるというエラーをスローしますか?
<option>Select</option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>
よろしくお願いします。
<select id='my_options'>
<option value=0>Select</option>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 3</option>
<option value=4>Option 4</option>
</select>
コントローラで次のことができます。
$this->form_validation->set_rules('my_options','Select Options','required|greater_than[0]');
明らかに、これは、form_validationクラスを使用していて、フォームがコントローラーに送信され、そこで上記のコード行を記述していることを前提としています。
私の知る限り、このような場合を処理する唯一の方法は、カスタム関数を作成することです。たとえば、次のように操作するのはそれほど難しくありません。
まず、form_validationライブラリのルールを作成します。
$this->form_validation->
set_rules('my_dropdown', 'Dropdown', 'callback_my_func');my_func
trueまたはfalse(およびエラーメッセージも)を返す検証関数は
どこにありますか。
そしてここに例がありmy_func
ます:
注:オプションを操作できるように、各オプションの値を指定する必要があります。
私の例では、「選択」オプションを0に設定します。次のようにします。
<option value="0">Select</option>
...そしてここに関数があります:
function my_func($dropdown_selection){
//If the selection equals "Select" that means it equals 0(which is the "hidden" value of it)
if($dropdown_selection === 0) {
//Set the message here.
$this->form_validation->set_message('my_func', 'You must specifiy a value for your dropdown');
//Return false, so the library knows that something is wrong.
return FALSE;
}
//If everything is OK, return TRUE, to tell the library that we're good.
return TRUE:
}
このコードは機能するはずですが、テストされていません。いつでもクリエイティブになり、コードを追加して、特定のWebアプリに合わせて調整できます。詳細については、form_validationライブラリに関するCIのドキュメントをここで確認してください。