2

Cakephp のフォーム ヘルパーは通常、次のようなフォーム要素を生成します。

<div class="input text">
  <label for="Firstname">Firstname</label>
  <input type="text" id="Firstname" value="" class="test" name="Firstname"/>
</div>

<label>しかし、との間にある改行を削除して、次のようにすることは可能です<input>か:

<div class="input text">
  <label for="Firstname">Firstname</label>    <input type="text" id="Firstname" value="" class="test" name="Firstname"/>
</div>

何かアイデアはありますか?

ありがとうございました

4

2 に答える 2

7

「改行」は HTML ではなく、デフォルトの CakePHP CSS にあります。これを解決するために、ベイクする CakePHP アプリに次の CSS ルールを追加します。

label {
    display: inline;
    width: 20%;
    float: left;
}
input, textarea {
    width: 76%;
    clear: none;
}
form div.submit {
    clear: none;
    display: inline;
}

これは基本的に、ラベルと入力の両方をインライン化し、それらの幅を適切に設定します (長さに応じて、アプリの数値を変更する必要がある場合があります)。

これがうまくいくかどうか教えてください。これらの行を APP/webroot/css/cake.generic.css の下部に追加するか、必要に応じて新しい CSS ファイルを追加できます。

于 2012-05-10T22:14:55.833 に答える
0

@ srs2012 の回答には同意しますが、フォーム ヘルパーの出力をフォーマットする方法があります。

FormHelper::input() アクションは、2 番目のパラメーターで「format」キーも受け入れます。このキーは、要素順序の書式テンプレートです。デフォルトの入力形式の順序は次のとおりです。

array('before', 'label', 'between', 'input', 'after', 'error')

配列にない要素は出力に含まれません。したがって、これを変更して「before」キーを削除すると、機能する可能性があります。

例として:

echo $this->Form->input('Model.name', array('format' => array('before', 'label', 'input', 'after', 'error')));

実際、この設定をプロジェクトで一度だけ使用する必要がありました。これはCakePHP 1.3 API にあります。少し遊んで、何ができるか見てみましょう。

于 2012-05-11T09:16:11.003 に答える