ビューに次のアクションを追加する(get)でHTMLヘルパーを使ってリンクを 作成しました。
ここでは、フォーラムの投稿に使用するフォームを作成してみます。フォームも同じようにヘルパー を使って作成することができます。
投稿フォームのテンプレートは、次のように作成します。
<?php echo $html->formTag('/forums/post'); ?> <?php echo $html->hidden('Discussion/categoryid',array('value' => $categoryid)); ?> <div> <label for="subject">件名:</label> <?php echo $html->input('Discussion/subject',array('size' => 50)); ?> </div> <div> <label for="name">名前:</label> <?php echo $html->input('Discussion/name',array('size' => 50)); ?> </div> <div> <label for="body">内容:</label> <?php echo $html->textarea('Discussion/message',array('cols' => 65,'rows' => 20)); ?> </div> <div> <?php echo $html->submit('投稿'); ?> </div> </form>
上から順に、formタグを出力してくれなヘルパーに「action属性(アドレス)」を指定します。この関数は、第二引数に メソッド、第三引数にその他の属性を指定することができます。デフォルトで第二引数が「POST」となっているので、 アドレスのみ指定しています。
対象としているカテゴリーIDを隠し(hidden)項目として設定しています。
次に「件名」と「名前」を入力するインプットボックスを作成します。インプットボックスを 作成するには、HTMLヘルパーのinput関数を使用し、第一引数に「モデル名」と「項目名」を「/」で 区切って指定します。第二引数には、inputタグに指定する属性を設定します。
同様にtextareaもHTMLヘルパーを使用して作成することができます。属性を設定する場合、配列を使用し 複数の属性を設定することができます。
「submit」ボタンもHTMLヘルパーで作成することができ、ボタンに表示する名称を第一引数に指定します。
フォームタグを閉じるヘルパーは、用意されていないようなので自前で記述します。
作成したテンプレートを表示すると次のように表示されます。
出力されるHTMLは、次のようになります。
<form action="/app/forums/post" method="post"> <div> <label for="subject">件名:</label> <input name="data[Discussion][subject]" size="50" value="" type="text" id="DiscussionSubject" /> </div> <div> <label for="name">名前:</label> <input name="data[Discussion][name]" size="50" value="" type="text" id="DiscussionName" /> </div> <div> <label for="body">内容:</label> <textarea name="data[Discussion][message]" cols="65" rows="20" id="DiscussionMessage"></textarea> </div> <div> <input type="submit" value="投稿" /> </div> </form>
フォームに入力された値は、data[モデル名][フィールド名]の形で配列に格納されます。
Copyright 1997-2010 BBB All rights reserved.