Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%)
|
Symfony 1.4.
Formularz rejestracji zaczyna się od wyboru typu użytkownika. Domyślnie jest to firma i rejestracja składa się z pól login, hasło i nazwa firmy. Jeżeli zostanie wybrany typ "osoba prywatna" to pole "nazwa firmy" znika i pojawiają się pola "imię" i "nazwisko". Dane firmy są połączone relacją z tabelą z użytkownikami więc do wyświetlenia takiego mieszanego formularza (login i hasło + nazwa firmy) używam merge obu formularzy. Każde z wymienionych pól jest obowiązkowe. Mój problem polega na tym, że jeżeli zostanie wybrana "osoba prywatna" to mimo, ze pole "nazwa firmy" jest ukrywane za pomocą JS to walidacja nadal działa i domaga się wpisania czegoś w to niewidoczne pole. 1. Jedne co mi przychodzi do głowy to deaktywacja walidacji dla tego pola już w akcji wykonywanej po wysłaniu formularza, po bind() a przed if($this->form->isValid()). Jeżeli to jest prawidłowe podejście to w jaki sposób powinna wyglądać instrukcja dla przykładowego pola? 2. Czy jest jakaś bardziej elegancka metoda na zrobienie czegoś takiego? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Tak naprawdę to Ty tam masz dwa różne formularze, jeden dla firm, jeden dla osób prywatnych. Tak więc utwórz sobie dwa osobne formularze, ich część wspólną możesz wrzucić do jakiejś abstrakcyjnej klasy bazowej. Później to już jedynie:
|
|
|
|
Foxx [Symfony] modyfikacja walidatora z poziomu szablonu 14.03.2011, 16:10:18
toffiak Skoro dane firmy są w osobnej tabeli to przy wybra... 14.03.2011, 18:55:22
Foxx Ale zauważ, że w przypadku firmy muszę zlikwidować... 14.03.2011, 18:59:59
bela To mówiąc szczerze mało eleganckie rozwiązanie. My... 14.03.2011, 22:29:17
Foxx Dzielenie tak prostego formularza na dwa kroki nie... 14.03.2011, 22:52:04
Foxx Dzięki. 14.03.2011, 23:47:34
Cysiaczek Ja dość często nadpisuję metodę bind(), w której d... 15.03.2011, 08:20:38
evertras Nadpisanie bind() jest chyba najlepszym rozwiązani... 27.03.2011, 12:23:27 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 14:35 |