デザイナ向け?CakePHP Formヘルパーいろいろ

デザイナ向け?CakePHP Formヘルパーいろいろ

寒い日が続きますね。
最近、身に着けるものの半数が発熱アイテムのichikawaです。
今日は、先日のHtmlヘルパーに続いてFormヘルパーをご紹介したいと思います。(今回も対象は、CakePHPのバージョン1.2です。)

フォームの開始タグと終了タグを出力したい

開始は$form->create()メソッドを使います。以下のような感じです。

<?php echo $form->create('Recipe', array('type' => 'post', 'action' => 'add')); ?>

上記は、以下の様な出力になります。

<form id="RecipeAddForm" method="post" action="/recipes/add">

反対に終了は$form->end()メソッドを使います。以下のような感じです。

<?php echo $form->end(); ?>

上記は、以下の様な出力になります。

</form>

何も指定しないとただ終了タグのみの出力ですが、指定すると送信ボタンのタグも同時に出力します。

<?php echo $form->end('Finish'); ?>

上記は、以下の様な出力になります。

<div class="submit">
    <input type="submit" value="Finish" />
</div>
</form>

送信ボタンのタグを出力したい

$form->submit()メソッドを使います。以下のような感じです。

<?php echo $form->submit('送信する', array('div' => 'false')); ?>

上記は、以下の様な出力になります。

<input type = "submit" value = "送信する">

画像を指定することもできます。以下のような感じです。

<?php echo $form->submit('/img/send.jpg', array('div' => 'false')); ?>

上記は、以下の様な出力になります。

<input type="image" src="/img/send.jpg" alt="送信する" />

テキストボックスのタグを出力したい

$form->text()メソッドを使います。以下のような感じです。

<?php echo $form->text('User.name'); ?>

上記は、以下の様な出力になります。

<input name = "data[User][name]" type = "text" value = "" id = "UserName">

テキストエリアのタグを出力したい

$form->textarea()メソッドを使います。以下のような感じです。

<?php echo $form->textarea('User.comment', array('cols' => 40, 'rows' => 10)); ?>

上記は、以下の様な出力になります。

<textarea name = "data[User][comment] cols = "40" rows = "10" id = "UserComment"></textarea>

チェックボックスのタグを出力したい

$form->checkbox()メソッドを使います。以下のような感じです。

<?php
$options = array('apple', 'orange', 'banana');
echo $form->input('User.fruits', array('type' => 'select', 'multiple' => 'checkbox', 'options' => $options, 'label' => false, 'div' => false));
?>

上記は、以下の様な出力になります。

<input type="hidden" name="data[User][fruits]" value="" />
<div class="checkbox">
<input type="checkbox" name="data[User][fruits][]" value="0" id="UserFruits0" />
<label for="UserFruits0">apple</label></div>
<div class="checkbox">
<input type="checkbox" name="data[User][fruits][]" value="1" id="UserFruits1" />
<label for="UserFruits1">orange</label></div>
<div class="checkbox">
<input type="checkbox" name="data[User][fruits][]" value="2" id="UserFruits2" />
<label for="UserFruits2">banana</label></div>

ラジオボタンのタグを出力したい

$form->radio()メソッドを使います。以下のような感じです。

<?php
$options = array('男性','女性');
$attributes = array("legend" => false, 'label'=> true);
echo $form->radio('User.sex', $options, $attributes);
?>

上記は、以下の様な出力になります。

<input type="hidden" name="data[User][sex]" id="UserSex_" value="" />
<input type="radio" name="data[User][sex]" id="UserSex0" value="0"  /><label for="UserSex0">男性</label>
<input type="radio" name="data[User][sex]" id="UserSex1" value="1"  /><label for="UserSex1">女性</label>

セレクトボックスのタグを出力したい

$form->select()メソッドを使います。以下のような感じです。

<?php
$jobType = array('プログラマー', 'デザイナー', 'コーダー');
$options = array('showParents' => true);
echo $form->select('User.job_type', $jobType, null, $options, '選択してください');
?>

上記は、以下の様な出力になります。

<select name="data[User][job_type]" id="UserJobType">
<option value="">選択してください</option>
<option value="0">プログラマー</option>
<option value="1">デザイナー</option>
<option value="2">コーダー</option>
</select>

隠しフィールドのタグを出力したい

$form->hidden()メソッドを使います。以下のような感じです。

<?php echo $form->hidden('User.drink' ,array('value' => 'coffee')); ?>

上記は、以下の様な出力になります。

<input type="hidden" name="data[User][drink]" value="coffee" id="UserDrink" />

以上、簡単ですがformヘルパーをご紹介しました。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ