Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Modyfikacja kontrolek/stanu kontrolek z kontrolera?
phpmack
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 1
Dołączył: 11.06.2011

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


Mama mały problem
Chodzi o taki przypadek gdzie w widoku generuje sobie jakieś kontrolki (nie korzystam z Zend_Form bo dekoratory doprowadzają mnie do białej gorączki) pola select, checkbox-y itd. i teraz po wybraniu/kliknięciu mogę uruchomić jakąś akcje + przesłać parametry do akcji ale co z tego skoro z poziomu akcji nie mogę zmodyfikować stanu tych kontrolek np. nowe elementy w "selekcie" odhaczenie checbox-a itd.
korzystając z
  1. $this->view->...
mogę dodać element ale nie mogę zmienić jego stanu/zmodyfikować go np.
  1. $this->view->check1->checked = 1
dostaję komunikat
Cytat
Notice: Indirect modification of overloaded property
co zrobić w takiej sytuacji? w jaki sposób można modyfikować stan kontrolek?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. public function __construct($ile, $options = null) {
  2. parent::__construct($options);
  3. // i tu twoje checkboxy w pętli i submit
  4. }

a w kontrolerze wywołujesz
  1. $form = new Application_Form_Panel(10);
  2. $this->view->form = $form;
Go to the top of the page
+Quote Post
phpmack
post
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 1
Dołączył: 11.06.2011

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


Cytat(skowron-line @ 26.11.2011, 18:23:28 ) *
  1. public function __construct($ile, $options = null) {
  2. parent::__construct($options);
  3. // i tu twoje checkboxy w pętli i submit
  4. }

a w kontrolerze wywołujesz
  1. $form = new Application_Form_Panel(10);
  2. $this->view->form = $form;


Skorzystałem z tego pomysłu i generuje sobie elementy formy na podstawie przekazanej tablicy elementów od razu ustawiam nazwy poszczególnych checkbox itd. rewela ale dlaczego gdy na stronie wyświetlane są jednoczenie dwa formularze to po kliknięciu na jakikolwiek "submit" wysyła mi wszystkie formularze?

Nadałem elementom "submit" w formularzach unikalne nazwy i teraz w akcji sprawdzam który został użyty:
  1. if ($this->_request->getPost('check_submit'))

ale to zabezpiecza tylko przed przedwczesną walidacją bo dalej gdy odbieram dane z POST to po wykonaniu:
  1. $this->getRequest()->getPost();

czyści mi dane ze wszystkich jednocześnie wyświetlanych formularzy

Może jeszcze opisze mój problem;) A więc jeden formularz z checkbox-ami wyświetlam na stronie cały czas używam go do aktywowania urządzeń czyli generuje sobie listę urządzeń a za pomocą pól chechbox włączam lub wyłączam urządzenia. Wszystko ok do momentu kiedy na stronie pojawi się drugi formularz np. dodawanie nowego urządzenia do bazy bo po wykonaniu go kasuje mi wszystkie checkbox-y.
Można coś z tym zrobić?

Ten post edytował phpmack 26.11.2011, 22:16:14
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 12.10.2025 - 10:07