Dwa obowiązkowe checkboxy

0

Witam

Mam obecnie na stronie obowiązkowy jeden checkbox, chciałbym dodać drugi, tak aby możliwe było przejście do kolejnej strony jedynie po zaznaczeniu obydwu.

Dodałem na stronie drugi chceckbox i teraz wygląda to tak:

 
    <input id="tac" type="checkbox" name="tac" value="1" /> akcept 1
    <input id="tac2" type="checkbox" name="tac2" value="1" /> akcept 2

W kontrolerze wygląda to tak:

 
    <?php
    class CartController extends Zend_Controller_Action
    {
     
    public function regulationsAction() {
    if (!$this->_request->isPost())
    {
    return $this->_helper->_redirector->gotoRoute(array(), 'cart');	
    }	
     
    $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
    $cart = Zend_Registry::get('cart');
     
    if($this->_getParam('tac') == 1) {	
    $cart->tac = true;	
    return $this->_helper->_redirector->gotoRoute(array(), 'delivery');
    }
    elseif($this->_getParam('tac') == 0) {	
    $cart->tac = false;
    $this->_flashMessenger->addMessage(array(0, 'Zaakceptuj accept 1.'));
    return $this->_helper->_redirector->gotoRoute(array(), 'cart');	
    }
    }
    ...

Jak to powinno właściwie wyglądać po przerobieniu?

0

Strzelam:

      public function regulationsAction() {
            if (!$this->_request->isPost())
            {
                return $this->_helper->_redirector->gotoRoute(array(), 'cart');
            }

            $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
            $cart = Zend_Registry::get('cart');

            if($this->_getParam('tac') == 1 && $this->_getParam('tac2') == 1) {
                $cart->tac = true;
                return $this->_helper->_redirector->gotoRoute(array(), 'delivery');
            }
            else {
                if($this->_getParam('tac') == 0) {
                    $cart->tac = false;
                    $this->_flashMessenger->addMessage(array(0, 'Zaakceptuj accept 1.'));
                    return $this->_helper->_redirector->gotoRoute(array(), 'cart');
                }
                if($this->_getParam('tac2') == 0) {
                    $cart->tac2 = false;
                    $this->_flashMessenger->addMessage(array(0, 'Zaakceptuj accept 2.'));
                    return $this->_helper->_redirector->gotoRoute(array(), 'cart');
                }
            }
        }
0

Strzał w 10, dzięki!

Jednak jest jeszcze coś, chodzi o to, że po zaznaczeniu tylko checkboxa 1, wyświetla się info o konieczności zaznaczenia również drugiego i na odwrót. Natomiast kiedy nie zostanie zaznaczony żaden z checkboxów, to jest tylko info o zaznaczeniu checkboxa 1, a chciałbym, żeby było info o dwóch. Da się to zrobić ?

0

Ja nie znam zenda.

Wygląda na to, że flashMessenger działa inaczej niż dało się wymyślić z rzucenia okiem na kod.
Wg dokumentacji -> http://framework.zend.com/apidoc/2.2/classes/Zend.Mvc.Controller.Plugin.FlashMessenger.html -> w ogóle nie ma opcji, że to przyjmuje tablicę, a u Ciebie w ten sposób jest zrobione.
Spróbuj array(0, 'Zaakceptuj accept 1.') zamienić na po prostu 'Zaakceptuj accept 1.' (pamiętaj o cudzysłowach) i analogicznie z drugą wiadomością. Jak nie - to na drugiej wiadomości zmień 0 na 1 (i zbadaj jak to się zachowa wtedy gdy tylko drugi checkbox nie będzie zaznaczony). A jak to nie pomoże to szukaj w dokumentacji co to jest ten flashMessenger i jak dokładnie go używać

0

Zmiana array(0, 'Zaakceptuj accept 1.') nie rozwiązała tego problemu, a zmiana z 0 na 1 spowodowała jedynie zmianę koloru wyświetlanych komunikatów. Mniejsza z tym, zostanie tak jaka jest. Jeszcze raz dziękuję za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1