質問: 思うように出力出来ません。 formだけ出力したいのに、formの後にdivとinputが出力されます。 ``` ``` falseを設定すると消せるとあったので以下のように記述しました。 ``` Form->create('xxx', array('controller'=>'yyy', 'action' => 'index', 'type' => 'POST', 'div' => false, 'hiddenField' => false)); ?> ``` ですが変わりません。 記述がおかしいのでしょうか? ご指摘いただけますでしょうか? 宜しくお願い致します。
回答: オプションにdiv=>falseが有効なのはテキストボックスなどの インプット要素を出力する「FormHelper::input」ですね。 ``` //テキストボックス echo $this->Form->input('comment', array('div' => false)); ``` フォーム開始タグを出力する「FormHelper::create」で付加されるのブロックは CakePHPが内部的に使用するデータで削除することはできないようです。 (言い切る自信がなかったのでFormHelperのソースを確認しましたが、 やはり強制出力でした。$appendという変数を追うと分かりやすいです) 付加されるdiv要素自体はdisplay:noneで非表示になっているので、デザイン面で悪さはしないはずです。 JavaScriptとの兼ね合いで問題がある場合は、非表示のdivが1つ余計にあることを考慮する、 操作対象をクラス、idを付けたdivでラップしてその中だけを対象にする等で対処できると思います。