Cake PHP - Form in view index.ctp

1

I have views: index.ctp , add.ctp , edit.ctp . Generated via modified Bake and everything, now what I need is that in the index view, when I click ADD NEW or EDIT, instead of going to the respective view, only displaying a modal with the form.

ADD

public function add() {
    if ($this->request->is('post')) {
        $this->Compra->create();
        if ($this->Compra->save($this->request->data)) {
            $this->Session->setFlash(__('The compra has been saved.'), 'default', array('class' => 'alert alert-success'));
            return $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The compra could not be saved. Please, try again.'), 'default', array('class' => 'alert alert-danger'));
        }
    }
    $formaPagamentos = $this->Compra->FormaPagamento->find('list', array('fields' => array('FormaPagamento.descricao')));
    $suppliers = $this->Compra->Supplier->find('list', array('fields' => array('Supplier.fantasia')));
    $this->set(compact('formaPagamentos', 'suppliers'));
}

Index

public function index() {
    $this->Compra->recursive = 0;
    $this->Paginator->settings = array('limit' => 20, 'order' => array('Compra.data' => 'DESC'));

    if ($this->request->is('requested')) {
        return $this->paginate();
    } else {
        $this->set('compras', $this->Paginator->paginate());
    }

    $formaPagamentos = $this->Compra->FormaPagamento->find('list', array('fields' => array('FormaPagamento.descricao')));
    $suppliers = $this->Compra->Supplier->find('list', array('fields' => array('Supplier.fantasia')));
    $this->set(compact('formaPagamentos', 'suppliers'));

}

Non-modal form

<div class="modal-body">
        <?php echo $this->Form->create('Compra', array('action' => 'add', 'role' => 'form')); ?>

            <div class="form-group">
                <?php echo $this->Form->input('valor', array('class' => 'form-control', 'placeholder' => 'Valor'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->input('data', array('class' => 'form-control', 'placeholder' => 'Data'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->input('entrega', array('class' => 'form-control', 'placeholder' => 'Entrega'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->input('forma_pagamento_id', array('class' => 'form-control', 'placeholder' => 'Forma de Pagamento', 'label' => 'Forma de Pagamento'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->input('data_pagamento', array('type' => 'text', 'class' => 'form-control', 'placeholder' => 'Data Pagamento'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->input('supplier_id', array('class' => 'form-control', 'placeholder' => 'Fornecedor', 'label' => 'Fornecedor'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->input('status', array('options' => array(0 => '[Informe o Status]', 1 => 'Pedido Realizado', 2 => 'Pedido Entregue', 3 => 'Pedido entregue e Pago'), 'class' => 'form-control', 'placeholder' => 'Status do Pagamento'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->input('obs', array('class' => 'form-control', 'placeholder' => 'Observações...'));?>
            </div>
            <div class="form-group">
                <?php echo $this->Form->submit(__('Submit'), array('class' => 'btn btn-default')); ?>
            </div>

        <?php echo $this->Form->end() ?>
  </div>
    
asked by anonymous 02.07.2015 / 11:22

0 answers