![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 22.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam pole select, które zawiera wartość nullową i kilku klientów do wyboru. Walidacja przechodzi poprawnie tylko w przypadku wyboru wartości null, w przypadku wyboru jakiegoś klienta to nie przechodzi. Nie mam ustawionych na tym polu żadnych walidatorów ani filtrów.
Polę buduję w ten sposób: Tworzę pole w klasie dziedziczącej po Zend_Form budującej formularz Potem uzupełniam w odpowiednim kontrolerze pobierającym wcześniej dane z bazy (formularz w zmiennej $this->createForm)
No i przekazuję formularz do widoku. Gdzie może leżeć błąd? Dlaczego walidacja nie przepuszcza wszystkich wartości? Ten post edytował Vill 14.12.2014, 14:44:24 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 11 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Okej, co prawda nie jak wiem co dokładnie siedzi w zmiennej $this->createForm, ale zakładam, że w controllerze ( w init) tworzysz formularz i go wkładasz do $this->createForm.
Twój problem z formularzem na tym, że w metodzie createAction() uzupełniasz opcje związane nowymi pozycjami (select). Natomiast po wysłaniu requesta, do metody createformAction(), formularz jest czysty (to nie ten sam obiekt co zbudowany w createAction()) i nie posiada dodatkowych pozycji w selekcie. W akcji przetwarzającej ten formularz także musisz go uzupełnić (przed walidacją) o możliwe do wyboru pozycjie inaczej formularz będzie krzyczał, że nie ma opcji. Zrób sobie mniejwięcej coś takiego:
Generalnie chodzi o to, byś formularz (już ze wszsytkimi opcjami) pobierał w jednolity sposób do akcji wyświetlania i zapisu. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 21:29 |