0

私はforeach、異なる ID で終わる同じアクションを持つ多くのフォームを表示する を持っています。ただし、タグ<form>は最初のフォームに表示されるだけです。他のすべてのフィールドは表示されますが、ループに別のフォーム<form> を入れようとしました。idしかし、うまくいきません。

コード:

    <?php echo $this->Form->create(null, array(
                'url' => array('controller' => 'menus', 'action' => 'aprovar', $procuracao['Attorney']['id']), 'id' => $procuracao['Attorney']['id']
                )); ?>
                <div class="control-group">
                <label class="control-label">Alçada:</label>
                <div class="controls">
                <?php echo $this->Form->input ('alcada', array('type' => 'select', 'label' => FALSE, 'options' => array(
                                                                                 'Até 10.000' =>  'Até 10.000',
                                                                                 'Até 50.000' => 'Até 50.000',
                                                                                 'Acima de 100.000' => 'Acima de 100.000',
                                                                                 'Acima de  500.000' => 'Até 500.000',),

                                                                                 'empty' => 'Selecione')); ?>
                </div>
                </div>

                <div class="control-group">
                <label class="control-label">Validade:</label>
                <div class="controls">
                <?php echo $this->Form->input('validade', array('label' => FALSE, 'type' => 'text')); ?>
                </div>
                </div>
                <?php echo $this->Form->submit('Ok', array('class' =>'btn btn-success pull-left', 'div' => false)); ?>
                </div>

フィールド「Alçada」と「Validade」が正しく表示されます。ただし、タグ<form>は最初の要素に表示されるだけです。

4

1 に答える 1

0

フォームを終了していません。

echo $this->Form->create(null, array(
            'id' => 'your-form-'.$i, //that $i is the index of the foreach, for example
            'url' => array('controller' => 'menus', 'action' => 'aprovar', $procuracao['Attorney']['id']), 'id' => $procuracao['Attorney']['id']
            ));
//all inputs and other stuff
echo $this->Form->end(array('label'=>'Ok', 'class' =>'btn btn-success pull-left', 'div' => false));

foreachあなたが使用しているすべての内部。

ドキュメント内のその関数の参照は次のとおりですしかし、基本的に、それはこれを行います

HTML フォームを閉じ、FormHelper::create() によって設定された値をクリーンアップし、必要に応じて非表示の入力フィールドを書き込みます

于 2013-08-13T15:16:40.920 に答える