参考にさせて頂いたページ
フォーム送信とForm Helper(3/5):初心者のためのCakePHP2.0 プログラミング入門
index.ctpの記述内容
参考ページにならって以下のとおり
<h1>Index Page</h1>
<p>this is test View.</p>
<p><?php echo $result; ?></p>
<p>
<?php
echo $this->Form->create(null,
array('type'=>'post','action'=>'.')); // 2.1では、null→false
echo $this->Form->text('text1');
echo $this->Form->end("送信");
?>
</p>
</div>
ここでちょっと問題が
この段階でhttp://192.168.33.10/cakephp/sample/indexを確認すると、
<p><?php echo $result; ?></p>
の部分で$resultが未定義なのでエラーが出た。
なので
<p>result</p>
に変更
echo $this->Form->create(null,
array('type'=>'post','action'=>'.')); // 2.1では、null→false
の部分も、自分は2.5.6を使っているので、nullではなくてfalseにする必要があり
echo $this->Form->create(false,
array('type'=>'post','action'=>'.')); // 2.1では、null→false
とした。
出力されたhtmlソース
までを抜粋してみた。以下のような感じ。
<form accept-charset="utf-8" method="post" id="Form" action="/cakephp/sample/.">
<div style="display:none;">
<input type="hidden" value="POST" name="_method">
</div>
<input type="text" id="text1" value="" name="data[text1]">
<div class="submit">
<input type="submit" value="送信">
</div>
</form>
今回のソースについて解説
echo $this->Form->create(false,
array('type'=>'post','action'=>'.')); // 2.1では、null→false
参考ページにもあるとおり、typeではmethod属性を設定し、actionはaction属性を設定する。
./form
にするべきだったのかなー?とちょっと思っているけど一旦スルーで。
<div style="display:none;">
<input type="hidden" value="POST" name="_method">
</div>
のような感じで、type="hidden"
の要素が生成されていた。
echo $this->Form->text('text1');
でテキストフォームが生成された。
引数のtext1がname属性に適用されているのがわかる。
echo $this->Form->end("送信");
で送信ボタンと、</form>
が生成されている。
今回はここまで。