hero_picture

Form::select でvalueが空のoption項目を作る

2015/07/06

fuelphpのFormクラスはいろいろと便利です。

その中でも、selectとradioはチェックをつけてくれたりするので大好きです。

Form::select – http://fuelphp.jp/docs/1.7/classes/form.html#/method_select

View内で以下のように書いたら、

[code]

<?

$arrGender = [1 => ‘男性’, 2 => ‘女性’];

$gender = 2;

echo Form::select(‘gender’,$gender,$arrGender,[‘class’ =>’form-control’]);

?>

[/code]

こんなhtmlを作ってくれます。

[code]

<select class=”form-control” name=”gender” id=”form_gender”>

<option value=”1″>男性</option<

<option value=”2″ selected=”selected”>女性</option>

</select>

[/code]

通常は$arrGenderの部分は別で定義しておきますし、

$genderの部分はModelあたりから取ってきたりPostされた値が入っています。

$arrGenderの配列に合わせてoption の部分を作ってくれて、

$genderのキーと一致するoptionにselectedを付けてくれます。超便利。

ですが、これだとユーザーが本当に値を選択したのかわからないので、入力が空ならエラーを出す形にしたい。

つまりこういうHTMLを出したい。

[code]

<select class=”form-control” name=”gender” id=”form_gender”>

<option value=””>選択してください</option>

<option value=”1″>男性</option>

<option value=”2″>女性</option>

</select>

[/code]

$arrGenderをこんな配列にしてやれば実現できました。

[code]

<?

$gender = null;

$arrGender = [” => ‘選択してください’, 1 => ‘男性’, 2 => ‘女性’];

echo Form::select(‘gender’,$gender,$arrGender,[‘class’ => ‘form-control’]);

?>

[/code]