Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Klasa formular, Jak się do tego zabrać?
Tarcil
post 23.01.2009, 13:07:30
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 24.11.2006

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


Witam

Mam troszkę dzisiaj czasu i buszuję po forum. Nospor napisał gdzieś, że do generowania formularzy (i zabezpieczenia się przed F5) używa własnej klasy (chyba, że źle zrozumiałem jego wypowiedź).

Jako, że próbuję się "otrzaskać" z obiektowo zorientowanym php od razu powstał w mej łepetynie pomysł "napisz sobie klasę do formularzy"... No i faktycznie, pomysł mi się podoba bo jednak formularzy jest mnóstwo na stronach, przy których coś usiłuję dłubać i gdyby się udało fajną klasę do tego zrobić, byłoby spoko.

Na razie wymyśliłem to tak:
1. Główna klasa to oczywiście klasa formular
2. Do niej dodałbym klasę formField, której właściwości to $_name (nazwa pola, do wrzucenia w name="") $_label (do wrzucenia w <label></label>) i $_desc (opis pola)
3. po klasie formField dziedziczyłyby klasy inputField (z właściwością type, czyloi wartością parametru type=""), selectField (z metodą addOption), textareaField itd...
4. Strukturę formularza tworzyłbym w sposób przybliżony do tego:
  1. <?php
  2. $form = new formular();
  3. $field = new inputField('name', Nazwa, 'wpisz swoje imię');
  4. $filed2 = new selectField('plec', 'Płeć', 'wybierz płeć');
  5. $filed2->addOption('k', 'kobieta');
  6. $filed2->addOption('m', 'mężczynza');
  7.  
  8. $form->generateHTML();
  9. ?>

wynikiem ostatniej metody byłby gotowy kod formularza.

Co Wy o tym myślicie? Jaki jest lepszy sposób na to? Jeszcze muszę tu gdzieś zapodać metodę insertValue(), która by wpisywała domyślną wartość... i do pól typu checkbox i do selecta jeszcze coś w rodzaju selectCurrentValue(). Ale czy wg Was podstawowe założenia mają sens? Jeśli nie, to wskażcie mi proszę luki w moim rozumowaniu.

Pozdrawiam!
Tarcil
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Black-Berry
post 15.02.2009, 18:10:24
Post #2





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Idealnie powinno być tak:

  1. <?php
  2. $form = new Form();
  3. $group = new Group();
  4. $group->addItem(new Form_Item());
  5. $form->addGroup($group);
  6. ?>


Już samo napisanie generatora kodu to nie mały problem ale to i tak przysłowiowy 'pikuś' jeśli zaczniemy myśleć o walidacji (walidacji PHP a nie JS). Ja osobiscie chciałbym mieć poniższe metody:

  1. <?php
  2. $item->validation(/*argumenty walidacji*/);
  3. ?>


a do tego najlepiej żeby była metoda

  1. <?php
  2. $form->onValid(/*przekierowanie lub funkcja wykonująca się jeśli form jest poprawnie wypełniony*/);
  3. ?>


i tu zaczynają się schody. Bez definiowania akcji która wykonuje się po zwalidowaniu formularza cała praca jest niepotrzebna bo do generowania kodu HTML wystarczą same kontrolki smile.gif Na ostatni podany przeze mnie problem nie znalazłem jeszcze dobrego rozwiązania. Pomyślę może jak zrobię sobie wszystkie inputy. Pozdrawaim.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie
- Tarcil   [PHP] Klasa formular   23.01.2009, 13:07:30
- - bim2   Ok, ok a do czego twoim zdaniem w tym wypadku będz...   23.01.2009, 15:53:00
- - Crozin   @bim2: class Field extends Form? Eeee... a co to m...   23.01.2009, 16:24:17
- - bim2   Hmm, inputy należą do forma. Można by znać indetyf...   23.01.2009, 17:36:07
- - pinochet   Tez cos takiego pisalem ale nie dopisalem pozatym ...   23.01.2009, 18:43:24
- - Tarcil   Jak pisałem, zaczynam się bawić w oop. Obiekt form...   24.01.2009, 11:43:23
- - Black-Berry   Z doświadczenia moge powiedziec ze lepiej sprawdza...   29.01.2009, 14:49:25
- - WaterIntelligence   Ostatnio zaprojektowałem klasy formularzy, które p...   2.02.2009, 11:38:28
- - Tarcil   Dzięki za porady Teraz muszę skończyć jedno pseu...   4.02.2009, 11:16:58
- - Black-Berry   Jeśli o mnie chodzi to czekam z niecierpliwośćią b...   4.02.2009, 13:50:00
|- - chiken   Cytat(Black-Berry @ 4.02.2009, 13:50...   14.02.2009, 14:13:26
|- - Black-Berry   Cytat(chiken @ 14.02.2009, 14:13:26 )...   14.02.2009, 14:50:52
- - chiken   hmmm, narazie korzystam z domyslnych wygladow, dla...   14.02.2009, 22:59:48
- - bim2   troche dzina konstrukcja, moim zdaniem powinno to ...   15.02.2009, 14:07:16
- - chiken   z definiowaniem klasy form, sie zgadzam, jeszcze u...   15.02.2009, 17:37:02
- - bim2   ale oczywiscie, html elements ma miec tylko dane r...   15.02.2009, 17:39:00
- - chiken   hmmm, a nie lepiej tworzyc obiekty w klasie html_e...   15.02.2009, 17:46:39
- - Black-Berry   Idealnie powinno być tak: [PHP] pobierz, plaintex...   15.02.2009, 18:10:24
- - chiken   dzieki za nakierowanie, wlasnie cos podobnego plan...   15.02.2009, 18:29:44
- - bim2   Ale co za prbolem z validacją? Validacja w tych kl...   15.02.2009, 20:19:32
|- - Black-Berry   Cytat(bim2 @ 15.02.2009, 20:19:32 ) A...   15.02.2009, 21:04:15
- - Whisller   Jakiś czas temu (od wersji 1.21.1 pomyliły mi się ...   15.02.2009, 21:19:12
- - Black-Berry   @bim2 Idea fajna ale z punktu widzenia profesjonal...   15.02.2009, 21:20:07
- - bim2   Ni potrzeba frameworka. Parsuje pregami fdokument ...   15.02.2009, 22:55:22
- - chiken   jak dla mnie ze tak powiem zamotane, powinno sie...   15.02.2009, 22:57:22
- - Black-Berry   Trochę tak. Zasada minimalizmu zawsze się opłaca:/   15.02.2009, 23:52:03
- - bim2   No nie wiem, bardzo ładnie działa i dodanie kolejn...   16.02.2009, 15:36:06
|- - chiken   Cytat(bim2 @ 16.02.2009, 15:36:06 ) N...   16.02.2009, 21:53:27
- - destroyerr   Oczywiście symfony ma formularze w obecnej postaci...   16.02.2009, 15:41:50
- - Crozin   @chlken: checkJavascript() to pewnie coś co genere...   17.02.2009, 08:18:00
- - chiken   no musiialem nie doczytac hehe   17.02.2009, 08:23:51


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: 14.08.2025 - 14:38