Codeigniterのフォームヘルパー

最近自分の知識の幅を広げたいと思ってたところで、「新規にWebサービスを作らないか」というお話を頂きました。

創作意欲も高まっていたのもあり「ぜひ」と即答。

で、どういうシステムにしようかと考えた結果、まだ使ったことのなかったCodeigniterに挑戦してみることにしました。

CakePHPは少し開発経験があるものの、Codeigniterに実際に触れるのは初です。

というわけで、得た知識を忘れないうちにCodeigniterについてまとめようと思います。

まだ絶賛開発中なので、今後も知識は増えるはず。

なので、おそらく何回か書くと思います。

今回はフォームヘルパーで使ったものを書きます

最初はインストールや初期設定を書くべきかとも思いますが、こちらの方が書きたくなった(笑)ので、まずはフォームヘルパーについて書きます。

フォームヘルパーを使うには最初にライブラリの読み込みが必要です。

$this->load->helper( 'form' );

これを記述すれば、この行以下からフォームヘルパーを使ってHTMLフォーム部分を記述していくことができます。

form_open()

formタグを記述する関数です。

echo form_open( 'text/modify' );

これを記述すると以下のようなformタグが出力されます。

<form method="post" accept-charset="utf-8" action="(URL)/text/modify" />

でもこれだけで使うよりは、第2引数にパラメータを設定することの方が多そうです。

$att = array(
    'class' => 'form',
    'id' => 'form_text_modify'
);
echo form_open( 'text/modify', $att );

これでformタグにclass属性、id属性も設定された状態で出力されます。

あと、今回使っていないですが『form_open_multipart()』という関数もあるようです。が、これについてはまたいずれ。

form_hidden()

type=”hidden”のinputタグを出力する関数です。

$dat = array(
    'func' => 'update',
    'text_id' => '123'
);
echo form_hidden( $dat );

このようにすると、以下のように2つのinputタグを出力します。

<input type="hidden" name="func" value="update" />
<input type="hidden" name="text_id" value="123" />

inputタグが1つのみの場合は以下のように記述することもできます。

echo form_hidden( 'func', 'update' );

実は開発初期の段階では前者の記述方法は知らず、必要な数だけ後者の記述をしていて大変な思いをしたのは秘密です。(大変というほど違いがあるわけでもありませんが。。。)

form_input()

type=”text”のinputタグを出力する関数です。

上の2つを見ると、なんとなく使い方と出力結果が想像できますね。

$att = array(
    'name' => 'main_text',
    'id' => 'main_text',
    'value' => '入力テキスト',
    'placeholder' => 'テキストを入力'
);
echo form_input( $att );

結果は以下。

<input type="text" name="main_text" id="main_text" value="入力テキスト" placeholder="テキストを入力" />

おそらく想像通りの結果になると思いますし、他のものもほぼ同じ使い方です。

form_textarea()

form_input()とほぼ同様で、異なるのはmaxlengthとsizeが無い代わりにrowsとcolsがあることです。

$att = array(
    'name' => 'main_text',
    'id' => 'main_text',
    'value' => '入力テキスト',
    'cols' => '30',
    'rows' => '10'
);
echo form_input( $att );

以下のように出力されます。

<textarea name="main_text" id="main_text" cols="30" rows="10" >入力テキスト</textarea>

form_label()

labelタグを出力する関数です。

echo form_label( 'テキスト', 'main_text' );

以下が出力されます。

<label for="main_text">テキスト</label>

もちろん連想配列を使うとidやclassも追加することができます。

form_submit()

submitボタンを出力する関数です。

echo form_submit( 'submit_button', '送信' );

下記のようなタグが出力されます。

<input type="submit" name="submit_button" value="送信" />

form_close()

echo form_close();

formの閉じタグを出力するだけです。

</form>

無くてもいいかも?

今回はここまで

とりあえず今回はここまでです。

もちろんラジオボタンやチェックボックス、セレクトボックスもフォームヘルパーで出力することができます。

私自身、今後使う予定はあるものの、ここまではまだテキスト入力系しか使っていないので。

また近々書きたいと思います。

スポンサードリンク

twitterまたはFacebookでもコメントして頂けます