jeudi 16 novembre 2017

Deleting multiple items with checkboxes

I am new to cakephp and I have got a problem with checkboxes. I have orders page where I can select items with checkboxes but I can't delete them. So I want to make function where I can delete checked items.

admin_index.ctp

<td><?php echo $this->Form->check('Order.id.' . $order['Order']['id'], ['type' => 'checkbox', 'name' => 'checkboxName','label' => false, 'class' => 'case hidden-xs']); ?></td>

        echo $this->Html->link('<i class="fa fa-times"></i> ' . __('Geselecteerde aanvragen verwijderen'),
            ['action' => 'deleteSelected', $order['Order']['id']],
            ['escape' => false, 'class' => 'btn btn-primary mb10']
        ) . '&nbsp;&nbsp;';

OrdersController.php

public function deleteSelected($id = null)
{
    if (!$this->Order->exists($id)) {
        throw new NotFoundException(__('Aanvraag niet gevonden.'));
    }

    $order = $this->Order->find('first', ['conditions' => ['Order.id' => $id]]);
    if ($this->Auth->user('group_id') != 3) {
        if ($order['Order']['customer_id'] != $this->Auth->user('id')) {
            throw new ForbiddenException(__('Verboden toegang'));
        }
    }

    if ($this->Order->deleteSelected($id) && $this->request->data['checkboxName'] ==  checked) {
        $this->Flash->alert(__('De aanvraag is geannuleerd.'), [
            'plugin' => 'BoostCake',
            'params' => ['class' => 'alert-success']
        ]);
    } else {
        $this->Flash->alert(__('De aanvraag kon niet worden geannuleerd, probeer het later opnieuw.'), [
            'plugin' => 'BoostCake',
            'params' => ['class' => 'alert-danger']
        ]);
    }

    $referParams = Router::parse($this->referer('/', true));
    if ($referParams['action'] == 'check') {
        return $this->redirect(['action' => 'check']);
    } else {
        return $this->redirect(['action' => 'index']);
    }
}




Aucun commentaire:

Enregistrer un commentaire