Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dwa obowiązkowe checkboxy
Forum PHP.pl > Forum > Przedszkole
phpkm
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:
  1. <input id="tac" type="checkbox" name="tac" value="1" /> akcept 1
  2. <input id="tac2" type="checkbox" name="tac2" value="1" /> akcept 2


W kontrolerze wygląda to tak:
  1. <?php
  2. class CartController extends Zend_Controller_Action
  3. {
  4.  
  5. public function regulationsAction() {
  6. if (!$this->_request->isPost())
  7. {
  8. return $this->_helper->_redirector->gotoRoute(array(), 'cart');
  9. }
  10.  
  11. $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
  12. $cart = Zend_Registry::get('cart');
  13.  
  14. if($this->_getParam('tac') == 1) {
  15. $cart->tac = true;
  16. return $this->_helper->_redirector->gotoRoute(array(), 'delivery');
  17. }
  18. elseif($this->_getParam('tac') == 0) {
  19. $cart->tac = false;
  20. $this->_flashMessenger->addMessage(array(0, 'Zaakceptuj accept 1.'));
  21. return $this->_helper->_redirector->gotoRoute(array(), 'cart');
  22. }
  23. }
  24. ...


Wie ktoś co należy zmienić i gdzie ?
Forti
  1. if($this->_getParam('tac') == 1) {
  2. $cart->tac = true;
  3. return $this->_helper->_redirector->gotoRoute(array(), 'delivery');
  4. }
  5. elseif($this->_getParam('tac') == 0) {
  6. $cart->tac = false;
  7. $this->_flashMessenger->addMessage(array(0, 'Zaakceptuj accept 1.'));
  8. return $this->_helper->_redirector->gotoRoute(array(), 'cart');
  9. }



Ty na prawdę nie wiesz co tu należy zrobić a bierzesz się za framework? ;>


Musisz sprawdzić wartość $this->_getParam('tac2') .
phpkm
To wiem, probowałem to robić na różne sposoby i nie fumkcjonuje to tak jak powinno.
Forti
Pokaż jakie.
Turson
A nie prościej stworzyć checkboxy przez obiekt formularza Zend, dać jako required i zwalidować?
phpkm
Cytat(Forti @ 1.01.2015, 19:07:28 ) *
Pokaż jakie.


Próbowałem dodać drugi warunek IF dla dodanego checkboxa, umieszczając go pod pierwszym warunkiem i kilka innych modyfikacji, ale nie mam pojecia o programowaniu, więc popełniam błędy i mi to nie działa jak należy.

  1. if($this->_getParam('tac2') == 1) {
  2. $cart->tac2 = true;
  3. return $this->_helper->_redirector->gotoRoute(array(), 'delivery');
  4. }
  5. elseif($this->_getParam('tac2') == 0) {
  6. $cart->tac2 = false;
  7. $this->_flashMessenger->addMessage(array(0, 'Zaakceptuj accept 2.'));
  8. return $this->_helper->_redirector->gotoRoute(array(), 'cart');
  9. }
Forti
Dostajesz jakieś błędy? Coś sie dzieje?
phpkm
Najcześciej dzieje się tak, że wystarczy zaznaczyć 1 z 2 obowiązkowych chceckboxow i można przejść dalej. To niestety nie może tak działać. Czy poniżej dobrze kombinuje (pogrubiona czcionka) ?


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
&&
($this->_getParam('tac2') == 1) {
$cart->tac2 = true;

return $this->_helper->_redirector->gotoRoute(array(), 'delivery');
}
elseif($this->_getParam('tac') == 0) {
$cart->tac = false
&&
($this->_getParam('tac2') == 0) {
$cart->tac2 = false;

$this->_flashMessenger->addMessage(array(0, 'Zaakceptuj accept 1,2.'));
return $this->_helper->_redirector->gotoRoute(array(), 'cart');
}
}
...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.