Cakephp 3.6.14: Создать и отправить форму с таблицей и флажком для каждой строки (2-я форма - та же страница) - PullRequest
0 голосов
/ 21 января 2019

Я хочу реализовать 2 разные формы на странице для 2 разных действий в одном контроллере.Я пытаюсь создать вторую форму, где пользователь может установить флажок для каждой строки таблицы.При отправке формы я хочу выполнить некоторый код в действии add контроллера.

Это мой AddElement\index.ctp:

<div class="row"> //First form is working fine
    <?php echo $this->Form->create('AddElement', array('action' => 'index')); ?>
    <?php echo $this->Form->control('element_categories', ['options' => $elementCategories, 'empty' => true]); ?>
    <?php echo $this->Form->button(__('Filter'), ['class'=>'btn-success']); ?>
    <?php echo $this->Form->end(); ?>
</div>

<h3><?= __('Task Elements') ?></h3>//2nd form not working as expected
<?php echo $this->Form->create('AddElement', array('action' => 'add')); ?>
<?php foreach ($taskElements as $taskElement): ?>
<table cellpadding="0" cellspacing="0">
    <thead>
        <tr>
            <th scope="col"><?= $this->Paginator->sort('id') ?></th>
            <th scope="col"><?= $this->Paginator->sort('name') ?></th>
            <th scope="col"><?= $this->Paginator->sort('element_category_id') ?></th>
            <th scope="col">Select</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><?= $this->Number->format($taskElement->id) ?></td>
            <td><?= h($taskElement->name) ?></td>
            <td><?= $taskElement->element_category_id != 0 ? $this->Html->link($taskElement->element_category->name, ['controller' => 'ElementCategories', 'action' => 'view', $taskElement->element_category->id]) : '' ?></td>
            <td><?= $this->Form->control('selected', ['type' => 'checkbox']);?></td>
        </tr>
        <?php endforeach; ?>            
    </tbody>
</table><?php
echo $this->Form->button('Add');
echo $this->Form->end();?>

И это addдействие AddElementController.php:

public function add($tasktypeid)
{   
    $this->autoRender = false; //no need for view

    debug($this->request->data());
    if($this->request->is('post'))
    {
        debug($this->request->data());
    }

}

Но когда я нажимаю «Отправить», это ничего не делает.Он просто загружается на секунду, но не выполняет код в контроллере.

...