以前にこんな記事を書きましたが、
焦点が定まってなくて、一度に色々あれこれ書こうとした結果、ひどい記事になりました。
なぜひどいのかといえば、自分が後で読んで、どれ一つとして理解できず、
結局参考リンクから知識をキャッチアップしなおしたからです。
なので今回は前回より分かりやすく、前の記事の失敗を踏まえて、
なるべく分かりやすく掘り下げて行きたいと存じ上げます。
ちょっと1回じゃ書ききれないので3回くらいで書いていけたらなと思います。
INDEX
FuelPHPにおけるフォームの作成方法
フォームの作成方法は2種類だと勝手に分けてます。
個別に1つ1つフォームをビューに記述方法と、
オブジェクト指向風にプログラム内部に記述する方法とがあります。
DBと連携させる場合は後者が扱いやすい気がします。
フォームを個別に作る
フォームを個別に作りたい場合Formクラスを使います。
バリデーションを組み合わせたい場合には、Fieldsetクラスも一緒に使います。
フォーム要素の作成はOpenメソッドを使う
フォーム要素を閉じる
labelを貼る
1つ目のパラメータはラベルが表示したい文字
2つ目のパラメータはidを設定するけどするとfor=form_mainlabelになる
3つ目のパラメータはHTML属性を設定できますforはこっちで設定した方が良い?
テキストボックスを作る
1つ目のパラメータはHTMLのname属性に入る値
2つ目のパラメータはHTMLのvalue属性に入る値
3つ目のパラメータはHTML属性を設定できます
コンボボックスを作る
1つ目のパラメータはHTMLのname属性に入る値
2つ目のパラメータはselectedの設定
3つ目のパラメータは連想配列で入れれば
optionタグにvalueとタグで囲ったテキストを入れてくれる。
さらに入れ子にすると、optgroupになる
4つ目のパラメータはHTML属性を設定できます
ラジオボタンを作る
Form::inputのメソッドでtype属性がradioになる
1つ目のパラメータはname属性の値
2つ目のパラメータはvalue属性の値
3つ目のパラメータはチェックの状態を設定できる。
2つめと同じだったらチェックっていう風にもできる。
4つ目のパラメータはHTML属性を設定できます
チェックボックスを作る
Form::inputのメソッドでtype属性がradioになる
1つ目のパラメータはname属性の値
2つ目のパラメータはvalue属性の値
3つ目のパラメータはチェックの状態を設定できる。
2つめと同じだったらチェックっていう風にもできる。
4つ目のパラメータはHTML属性を設定できます
テキストエリアを作る
1つ目のパラメータはHTMLのname属性に入る値
2つ目のパラメータはHTMLのvalue属性に入る値
3つ目のパラメータはHTML属性を設定できます
再入力させたい場合
間違った時にフォーム画面に戻した際、
valueの設定がされていないと、ユーザーがイチから入力しないとダメです。
だから、valueにはInput::post('name')を入れます。
実際使って見た例
自分が昔使ってたコードの一部
次回はバリデーション!
というわけでfuelphpでのフォームの作成方法を書きました。
ただ、あんまりこれだけでは実践的じゃないので、
後日バリデーションの方法、オブジェクト指向での実装方法と2回に分けて書きます。
これ知りたいとかあったら@mikaduki_Rockに言って下さい。
来週中くらいに二つともかければいいかなぁ・・・。