Dwa obowiązkowe checkboxy

Odpowiedz Nowy wątek
2015-01-04 16:56
noname2015
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?

edytowany 1x, ostatnio: dzek69, 2016-12-13 18:26

Pozostało 580 znaków

2015-01-04 19:12
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');
                }
            }
        }

Pozostało 580 znaków

2015-01-04 22:01
noname2015
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ć ?

Pozostało 580 znaków

2015-01-04 22:09
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/api[...]er.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ć


edytowany 1x, ostatnio: dzek69, 2015-01-04 22:09

Pozostało 580 znaków

2015-01-04 22:48
noname2015
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!

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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