0

フォームで列を使用しようとしています。

私は次のコードを持っています。コラム

コードは次のとおりです。

$col=$this->add('Columns');
$left=$col->add($f->addField('text','observaciones'));
$right=$col->add($f->addField('line','cantidad_de_bocas'));

列のフィールドは、フォーム フィールドに基づいています。列に複数のフィールドを追加したい (例: 左の列に 2 つのフィールド、右の列に 4 つのフィールド)。

私はこれについていくつかの例を見てきました。

$col=$page->add('Columns');
$left=$col->addColumn(2)->add('View_SlotMachine');
$right=$col->addColumn(2)->add('View_SlotMachine');
  • フィールドが重複しているのはなぜですか?
  • メソッド addColumn(2) は何をしますか?

どうもありがとう

4

1 に答える 1

0

atk 4.1 を使用した開発をまだ行っていない場合は、4.2 をダウンロードして、こちらの例を参照してください。4.2 には利用できる多くの新機能があり、これらの変更を反映するためにデモとサンプルが更新されています。

4.2では、このような2列のスタイリングの例があります

class StylingForm extends Form {
  function init(){
    parent::init();
    $f=$this;

    $f->addField('line','name')->validateNotNull()
        ->setFieldHint('Click "Register" to see error');
    $f->addField('line','email')
        ->validateNotNull()
        ->validateField('filter_var($this->get(), FILTER_VALIDATE_EMAIL)')

    .. .. ..

 }

 functoin init() {
   // Stacked class puts labels on top of fields
   $form=$page->add('StylingForm');
   $form->addClass('stacked atk-row');

   $form->template->trySet('fieldset','span6');
   $sep=$form->addSeparator('span6');
   $form->add('Order')->move($sep,'before','age')->now();

 }

atk4.1 では、フォームはビューであるため、atk4/templates/shared/view/form.html にテンプレートがあり、atk4/lib/View/form.php にいくつかのコードがあります。

ここで言及したスロット マシンの例では、ビューの幅を使用可能な画面幅の 20% に設定するために addColumns(2) が使用されていますが、この例では、各列にスロット マシンのビューが含まれます。 . 同じページにフォームを配置したい場合は、同じ機能を使用できますが、1 つの送信ボタンを備えた 2 つの列にまたがる 1 つのフォームが必要なようです。

atk4.1 を引き続き使用する必要がある場合は、form.html を確認する必要があります。ローマ人は、そのバージョンで 2 列のフォームを作成する方法を提案できるかもしれません。atk-form-vertical-2col や atk-form-vertical-3col などの css で定義されたいくつかのクラスがあり、それらを設定する関数 setFormClass があることがわかりますが、フィールドを配置するためにどのタグを設定するかわかりません右側 - デフォルトでは、すべてが左側に配置されます。

于 2012-07-26T02:31:28.520 に答える