0

Cakephpのあるページの各テーブル行の下に複数のフォームが必要です。これを可能にするために入力名を変更する方法がわかりません。

    <table cellpadding="0" cellspacing="0">
    <tr>
            <th><?php echo $this->Paginator->sort('id'); ?></th>
            <th><?php echo $this->Paginator->sort('member_no'); ?></th>
            <th><?php echo $this->Paginator->sort('first_name'); ?></th>
            <th><?php echo $this->Paginator->sort('last_name'); ?></th>
            <th><?php echo $this->Paginator->sort('total_points'); ?></th>
            <th><?php echo $this->Paginator->sort('date_joined'); ?></th>
            <th class="actions"><?php echo __('Actions'); ?></th>
    </tr>
    <?php foreach ($members as $member): ?>
    <tr>
        <td><?php echo h($member['Member']['id']); ?>&nbsp;</td>
        <td><?php echo h($member['Member']['member_no']); ?>&nbsp;</td>
        <td><?php echo h($member['Member']['first_name']); ?>&nbsp;</td>
        <td><?php echo h($member['Member']['last_name']); ?>&nbsp;</td>
        <td><?php echo h($member['Member']['total_points']); ?>&nbsp;</td>
        <td><?php echo h($member['Member']['date_joined']); ?>&nbsp;</td>
        <td class="actions">
            <?php echo $this->Html->link(__('View'), array('action' => 'view', $member['Member']['id'])); ?>
            <?php echo $this->Html->link(__('Edit'), array('action' => 'edit', $member['Member']['id'])); ?>
            <?php echo $this->Form->postLink(__('Delete'), array('action' => 'delete', $member['Member']['id']), null, __('Are you sure you want to delete # %s?', $member['Member']['id'])); ?>
        </td>
    </tr>
    <tr>
        /// This is the form for each record
        <td>
            <?php echo $this->Form->create('Point', array('action' => 'add')); ?>
                <fieldset>
                    <legend><?php echo __('Add Point'); ?></legend>
                <?php
                    echo $this->Form->input('member_id',array('type'=>'hidden', 'value'=>$member['Member']['id']));
                    echo $this->Form->input('points');
                ?>
                </fieldset>
            <?php echo $this->Form->end(__('Submit')); ?>
        </td>
    </tr>
<?php endforeach; ?>
    </table>
4

1 に答える 1

0

CakePHPは、一意の名前が付けられている限り、通常どおりフォームを生成します。フォームの名前にメンバーIDを追加することを検討してください。

<?php echo $this->Form->create('Point'.$member['Member']['id'], array('action' => 'add')); ?>

これ(または他の任意の方法)を使用して、フォームを一意にすることができます。一意でないフィールド名でも問題が発生する可能性があります。その場合、同じコントローラーからのものである場合は、同様のトリックを使用して、フォームとフィールドの両方にすべての一意のフィールド名を設定します。

于 2013-02-24T01:31:06.330 に答える