FuelPHPのForm::radioとラベルの関連付け
※FuelPHPの想定バージョンは1.7
Form::radioにラベルを関連づける為のメモ。
Form::radioでradioボタンを作成し、そこにラベルを関連づけしようとすると、Form::labelはidにformのprefixが付くのに対し、Form::radioはprefixが付かないので若干ややこしい。
対応案1
Form::radioでprefix付きのidを指定する。
(label側のidにprefixが付くのを見越し、radio側のidを付けてしまう)
<?= Form::radio('status', 1, Input::post('status') != '0', array('id' => 'form_status_1')) ?> <?= Form::label('有効', 'status_1') ?> <?= Form::radio('status', 0, Input::post('status') == '0', array('id' => 'form_status_0')) ?> <?= Form::label('無効', 'status_0') ?>
生成されるHTML
<input id="form_status_1" name="status" value="1" checked="checked" type="radio" /> <label for="form_status_1">有効</label> <input id="form_status_0" name="status" value="0" type="radio" /> <label for="form_status_0">無効</label>
対応案2
prefixを自動的に付けないようにする。
(idへのprefixの自動付与をやめ、radioとlabelで同じidを指定する)
app/config/form.php <?php return array( 'auto_id_prefix' => '' );
<?= Form::radio('status', 1, Input::post('status') != '0', array('id' => 'status_1')) ?> <?= Form::label('有効', 'status_1') ?> <?= Form::radio('status', 0, Input::post('status') == '0', array('id' => 'status_0')) ?> <?= Form::label('無効', 'status_0') ?>
生成されるHTML
<input id="status_1" name="status" value="1" checked="checked" type="radio" /> <label for="status_1">有効</label> <input id="status_0" name="status" value="0" type="radio" /> <label for="status_0">無効</label>