Formヘルパーのinputタグのdiv/labelなどの設定

Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。
CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られています。恐らく、それを見越してのデフォルトでのフォーミングだと思いますが。

echo $this->Form->input( 'field', array());

<!-- HTML ->
<div class="input text">
    <label for="field">Field</label>
    <input id="field" type="text" name="data[field]">
</div>

divやlabelの出力をしない

ためには、それぞれにfalseをオプションとして設定します。これで、inputを囲っていたdiv要素が出力されなくなり、前のlabelも出力されなくなります。

echo $this->Form->input( 'field', array(
    'label' => false,    // labelを出力しない
    'div' => false       // divで囲わない
));

<!-- HTML ->
<input id="field" type="text" name="data[field]">

divやlabelのclassやテキストを設定する

こちらもオプションとしてそれぞれclassやtextを設定することで可能です。

echo $this->Form->input('field', array(
    'label' => array(
        'text' => 'message',       // labelに表示するテキスト
        'class' => 'control-label' // labelタグに付与するclass
    ),
    'div' => array(
        'class' => 'form-group'    // divタグに付与するclass
    ),
    'class' => 'form-control'      // inputタグに付与するclass
));

<!-- HTML ->
<div class="form-group">
    <label class="control-label" for="formdata3Field">message</label>
    <input id="formdata3Field" class="form-control" type="text" name="data[formdata3][field]">
</div>

その他idなども設定可能です。

その他

'class'には複数指定する場合があると思いますが、配列にするのではなくそれぞれをスペース区切りで書くようにして下さい。classに対してtrim処理が行われるらしく、配列に対してはtrimできません と怒られます。

Warning (2): trim() expects parameter 1 to be string, array given
[CORE/Cake/View/Helper.php, line 789]


Formヘルパー:/lib/Cake/View/Helper/FormHelper.php
Views > Helpers > FormHelper > Options
デモ
  • このエントリーをはてなブックマークに追加

関連記事

独自のバリデーションルールを作成

CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規

DebugKitを導入

定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし

Cookieログイン

今回は、ログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcookieメソッドのラッパー)メソッドはwr

RSSフィードの取得

コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://

selectボックスを実装

今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った

SQLクエリーをログに出力する

SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処

no image

HttpSocketを使用してリクエスト送信

CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。 HttpSocket get HTTP GETリクエストを発行します。デモ H

ネストしたリストを出力「nestedList」

DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(

ログローテーション

CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え

バリデーションエラーメッセージの取得

CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.

Comment

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑