デザイナ向け?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ヘルパーをご紹介しました。