Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dwa obowiązkowe checkboxy
phpkm
post 1.01.2015, 15:58:09
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (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:
  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 ?
Go to the top of the page
+Quote Post
Forti
post 1.01.2015, 16:09:32
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


  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') .

Ten post edytował Forti 1.01.2015, 16:10:23


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
phpkm
post 1.01.2015, 16:37:56
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (0%)
-----


To wiem, probowałem to robić na różne sposoby i nie fumkcjonuje to tak jak powinno.
Go to the top of the page
+Quote Post
Forti
post 1.01.2015, 19:07:28
Post #4





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Pokaż jakie.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Turson
post 1.01.2015, 19:20:22
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


A nie prościej stworzyć checkboxy przez obiekt formularza Zend, dać jako required i zwalidować?
Go to the top of the page
+Quote Post
phpkm
post 1.01.2015, 20:11:35
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
Forti
post 1.01.2015, 21:31:02
Post #7





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Dostajesz jakieś błędy? Coś sie dzieje?


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
phpkm
post 4.01.2015, 14:56:45
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (0%)
-----


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');
}
}
...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 08:39