Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Klasa formular, Jak się do tego zabrać?
Tarcil
post
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
Post #2





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

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


Z doświadczenia moge powiedziec ze lepiej sprawdzają się pojedyncze obiekty generujące pola - przykład:

  1. <?php
  2. $input = new TextInput();
  3. $input->label = 'Imie i nazwisko';
  4. $input->width = 500;
  5. $input->top = 100;
  6. $input->left = 20;
  7. $input->onclick = 'some javascript';
  8. $input->name = 'imie_i_nazwisko';
  9. $input->generate();
  10. ?>


Oczywiście należy napisać kilkanaście klas takich jak Select, FileInput, Button, CheckBox itd...
Kiedy już masz wszystkie klasy wyswietlające mozna zabrać się do etapu tworzenai klasy form. (Jeszcze nie doszedłem do tego etapu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ).

Dlaczego takie rozwiązanie:
-Bo każda przeglądarka z tego samego kodu generuje coś innego. Metoda generująca musi wykryć typ przeglądarki i uwzględnić to dodając odpowiednie style. To bardzo przyspiesza pracę.

Moze ci się to rpzyda. Pozdrawiam.
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 06:23