FuelPHPで登録処理やメールフォームを作成する場合に、formタグ関連の出力を行ってくれる便利なクラスがあります。
今回はそのFormクラスについて取り上げたいと思います
下記は、Formクラスについてのリファレンス+サンプルとなります。
- open($attributes = array(), $hidden = array())
- close()
- input($field, $value = null, $attributes = array())
- button($field, $value = null, $attributes = array())
- hidden($field, $value = null, $attributes = array())
- csrf()
- password($field, $value = null, $attributes = array())
- radio($field, $value = null, $checked = null, $attributes = array())
- checkbox($field, $value = null, $checked = null, $attributes = array())
- file($field, $attributes = array())
- reset($field, $value = null, $attributes = array())
- submit($field, $value = null, $attributes = array())
- textarea($field, $value = null, $attributes = array())
- select($field, $values = null, $options = array(), $attributes = array())
- label($label, $id = null, $attributes = array())
- fieldset_open($attributes = array(), $legend = null)
- fieldset_close()
- Formクラスの使用感
open($attributes = array(), $hidden = array())
formの開始タグが出力されます。
コード
echo Form::open('controller/action');
実行結果
<form accept-charset="utf-8" action="http://hostname/controller/action" method="post">
close()
フォームの閉じタグが出力されます。
コード
echo Form::close();
実行結果
</form>
input($field, $value = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::input('email', '', ['id' => 'email_id', 'class' => 'email_class', 'style' => 'text-align: center;']);
実行結果
<input id="email_id" class="email_class" style="text-align: center;" name="email" type="text" value="" />
button($field, $value = null, $attributes = array())
ボタン要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::input('save', 'SAVE', ['id' => 'button_save', 'class' => 'button_save_class', 'style' => 'text-align: center;']);
実行結果
<button id="button_save" class="button_save_class" style="text-align: center;" name="save">SAVE</button>
hidden($field, $value = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::hidden('id', 100, ['id' => 'hidden_id', 'class' => 'hidden_class']);
実行結果
<input id="hidden_id" class="hidden_class" name="id" type="hidden" value="100" />
csrf()
生成されたCSRFトークンがセットされた入力要素を出力します。
コード
echo Form::csrf();
実行結果
<input name="<?php echo Config::get('security.csrf_token_key');?>" type="hidden" value="<?php echo Security::fetch_token();?>" />
password($field, $value = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::input('password', '', ['id' => 'password_id', 'class' => 'password_class', 'style' => 'text-align: center;']);
実行結果
<input id="password_id" class="password_class" style="text-align: center;" name="password" type="password" value="" />
radio($field, $value = null, $checked = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::radio('type', 1, true, ['id' => 'radio_id', 'class' => 'radio_class', 'style' => 'border: 1px solid #000;']);
実行結果
<input id="radio_id" class="radio_class" style="border: 1px solid #000;" checked="checked" name="type" type="radio" value="1" />
checkbox($field, $value = null, $checked = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::checkbox('type', 1, true, ['id' => 'checkbox_id', 'class' => 'checkbox_class', 'style' => 'border: 1px solid #000;']);
実行結果
<input id="checkbox_id" class="checkbox_class" style="border: 1px solid #000;" checked="checked" name="type" type="checkbox" value="1" />
file($field, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::file('file', ['id' => 'file_id', 'class' => 'file_class', 'style' => 'border: 1px solid #000;']);
実行結果
<input id="file_id" class="file_class" style="border: 1px solid #000;" name="file" type="file" value="" />
reset($field, $value = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::reset('reset', 'RESET', ['id' => 'reset_id', 'class' => 'reset_class', 'style' => 'border: 1px solid #000;']);
実行結果
<input id="reset_id" class="reset_class" style="border: 1px solid #000;" name="reset" type="reset" value="RESET" />
submit($field, $value = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::submit('submit', 'SUBMIT', ['id' => 'submit_id', 'class' => 'submit_class', 'style' => 'border: 1px solid #000;']);
実行結果
<input id="submit_id" class="submit_class" style="border: 1px;" name="submit" type="submit" value="SUBMIT" />
textarea($field, $value = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::textarea('textarea', 'default string', ['rows' => 10, 'cols' => 5]);
実行結果
<textarea cols="5" name="textarea" rows="10">default string</textarea>
select($field, $values = null, $options = array(), $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::select(
'type',
1,
[1 => 'select1', 2 => 'select2'],
['id' => 'select_id', 'class' => 'select_class', 'style' => 'border: 1px;']
);
実行結果
<select id="select_id" class="select_class" style="border: 1px;" name="type">
<option value="1">select1</option>
<option value="2">select2</option>
</select>
label($label, $id = null, $attributes = array())
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::label('LABEL', 'label');
実行結果
<label for="label">LABEL</label>
fieldset_open($attributes = array(), $legend = null)
入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。
コード
echo Form::fieldset_open();
実行結果
<fieldset>
コード(idとclassを指定する場合)
echo Form::fieldset_open(['id' => 'example_id', 'class' => 'example_class']);
実行結果
<fieldset id="example-id" class="example-class">
コード(legendを出力する場合 – その1)
echo Form::fieldset_open([], 'Custom Legend');
実行結果
<fieldset>
<legend>Custom Legend</legend>
コード(legendを出力する場合 – その2)
echo Form::fieldset_open(['legend' => 'Custom Legend']);
実行結果
<fieldset>
<legend>Custom Legend</legend>
fieldset_close()
フォームの閉じタグが出力されます。
コード
echo Form::fieldset_close();
実行結果
</fieldset>
Formクラスの使用感
状況によっては、直接タグを書いた方が早い場合もあるかもしれません。
自分の場合、jsなどで利用する部分については全て直接書くようにしています。
こんな感じにルールを作った上でコーディングすると、修正の際も楽になると思います。
コメント
こんにちは、
私はfuelphpについて調べていますが、
本ページが見つけられて、本当に助かりました。
ありがとうございます。
本ページの内容を1回読みましたが、
間違いところがあるそうですので、
フィードバックさせていただきます。
これは一箇所の例だけですが、こういう記述がりました。
「
submit($field, $value = null, $attributes = array())
コード
echo Form::reset(‘submit’, ‘SUBMIT’, array(‘id’ => ‘submit_id
」
例文のコードは問題ありそうです。
ということでもっとよいページになるとうに
ご確認をお願いします。
よろしくお願いします。
ご指摘頂きありがとうございます!
こちら記載内容を修正させて頂きましたm(_ _m)