Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obiektowe formularze?
Vomit
post 24.02.2006, 08:45:24
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

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


Jaki jest tego sens? Czy biblioteka QuickForm to dobra biblioteka? W czym ma przewage nad zwyklymi formularzami?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
nospor
post 24.02.2006, 10:11:40
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie wiem jak dziala QuickForm - nie uzywalem.
Wiem natomiast że jest sens korzystania z klas do formularzy (korzystam z wlasnej winksmiley.jpg ). Oczywiscie do tych rozbudowanych. Do formularza w stylu login i haslo nie ma co zaprzegac tego mechanizmu.

Dzięki takim klasom nie musisz się martwic w implementowanie walidatorów dla pol po stronie js czy php. Mowisz tylko, ze to pole ma byc walidowane jako int, nie moze byc puste i jeszcze cos tam i juz sie o nic nie martwisz. wszystko zalatwi ci klasa.
Formularze wielostronicowe. Poprostu bajka. Juz sie nie martwisz ze musisz pamietac pola z innych stron. To wszystko zrobi za ciebie klasa. ty tylko mowisz ze to pole nalezy do tej strony i juz.
Wersja do wydruku. Nie wiem jak to w innych jest, ale u mnie jest, ze ja ustawiam parametr preview na true i juz mi sie caly formularz generuje w wersji do wydruku. moge se ewentualnei zmienic jeszcze szablon, ale w wiekszosci wypadkow mi starcza winksmiley.jpg
Kazda klasa moze miec jeszcze inne mozliwosci. Ja se przykladowo dorobilem sekcje, dzieki czemu moge se w foemularzu dynamicznie dodawac pola (grupy pól- sekcje) i mi to klasa wychwyci i zwaliduje. Dorobilem se pola zależne od innych. czyli ze jesli odznacze jakiegos checkboxa, to mi inne pola znikają lub sie pojawiają w zaleznosci jaki tryb wybralem. Ja juz nie musze pisac js do tego. To mi robi klasa.
I wiele innych smile.gif

POdsumowując: klasy do formularzy do duuuza oszczędnośc czasu i przejrzystość kodu winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bastion
post 24.02.2006, 10:15:18
Post #3





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


@nospor: projektuje swoja klase do budowania formularzy, dlatego mam pytanie - korzystasz z dobrodziejst ajaxa w swoim?


--------------------
Go to the top of the page
+Quote Post
hwao
post 24.02.2006, 10:17:26
Post #4


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Ja swoje napisalem tak, ze teraz zrobienie formularza to nie duza chwila czasu, wraz z walidacja, wypelnianiem odpowiednio pol, dodawaniem roznych dodatkow bbcode/ajax itp. Imho warto, ale trzeba uwazac zeby nie przesadzic z OOP ;] bo bedzie zamulac
Go to the top of the page
+Quote Post
nospor
post 24.02.2006, 10:18:50
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Bastion nie. niestety za ajaxa jeszcze się nie bralem. czas najwyzszy, ale jakos nie ma kiedy. Ale takie posty to moze na PW, chyba ze bedzie jakis glębszy związek z tematem topicu.
Choc w sumie moze i jest tu związek: @Vomit te klasy mogą za ciebie uzywać ajaxa winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Vomit
post 24.02.2006, 10:46:16
Post #6





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

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


Rozumiem, ze logowanie to wyjatek, poniewaz czy to dodawanie komentarza do newsa, czy tez rejestracja powinna byc przedstawiona za pomoca obiektowych formularzy?

Mozecie polecic cos innego niz Quick Form? O innych bibliotekach nie slyszalem. Z jakich wy korzystacie?
Go to the top of the page
+Quote Post
nospor
post 24.02.2006, 10:50:49
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
dodawanie komentarza do newsa
a co bedziesz mial w tym formularzu? textarea do dodania komentarza. cos jeszcze? Do jednego pola nie ma co zaprzegac calego mechanizmu. Klasy do formularzy wykorzystuje sie przy rozbudowanych formularzach, gdzie korzyści z tego są największe. mozna tez oczywiscie i do jednego pola zaprząc, ale większy z tego spadek wydajnosci niz korzyść winksmiley.jpg

Jakie klasy? Ja uzywam wlasnej. Jak mi cos brakuje to dodaje. Ale juz mi chyba nic nie brakuje (nie licząc piątej klepki laugh.gif )

Poszukaj na phpclasses.org tam jest duzo tego


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dr_bonzo
post 24.02.2006, 11:59:11
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


phpObjectForms
http://pof.sourceforge.net/
ale nie uzywalem biggrin.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Vomit
post 24.02.2006, 14:47:56
Post #9





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

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


w takim razie jak pogodzic obiektowe formularze z systemami szablonow? Wiem, ze niektorzy tworza pluginy do systemow szablonow, dzieki ktorym jest mozliwe tworzenie formularzy w szablonie. Co zrobic gdy jest inaczej?
Go to the top of the page
+Quote Post
Ociu
post 24.02.2006, 15:31:41
Post #10





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




np. tak:
  1. <?php
  2. function render() {
  3. $form = '<form action="wynik.php">';
  4. $form .= '<input name="name" />';
  5. $form .= '</form>';
  6.  
  7. return $form;
  8. }
  9.  
  10. $this->assign('form', render());
  11. ?>
Go to the top of the page
+Quote Post
nospor
post 24.02.2006, 15:44:53
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




moja klasa dziala w oparciu o szablony, a konkretnie o smarty.
wygląda to tak:
pola definiuje w php. metoda klasay: AddInput.
Natomiast umiejscowiam je w szablonie o tak: {input name="nazwapola"}
Mozliwe jest to dzieki temu, iz definiuje prefilter w smartym, dzieki czemu najpierw parsuje szablon, a pozniej wystąpienia moich pol zamieniam na pluginy. wszystko proste i przejrzyste winksmiley.jpg

przykladowy kod php:
  1. <?php
  2.  
  3.     $form=new Formr(); //stworzenie obiektu 
  4.  
  5.     $form->SetErrorMethod('blad');//ustawienie metody obsługującej komunikaty błędu
  6.  
  7.     $form->errorClass='error'; //klasa css dla wyświetlania błędów
  8.  
  9.  
  10.  
  11.     //dodanie pola
  12.  
  13.     $form->AddInput(array(
  14.         'type'=>'text',
  15.         'id'=>'id1',
  16.         'label'=>'x',
  17.     ));
  18.     $form->AddInput(array(
  19.         'type'=>'text',
  20.         'id'=>'id11',
  21.         'label'=>'x',
  22.     ));
  23.     $form->AddInput(array(
  24.         'type'=>'textarea',
  25.         'id'=>'id2',
  26.         'label'=>'x',
  27.     ));
  28.     $form->AddInput(array(
  29.         'type'=>'checkbox',
  30.         'id'=>'id3',
  31.         'label'=>'x',
  32.     ));
  33.     $form->AddInput(array(
  34.         'type'=>'submit',
  35.         'id'=>'go',
  36.         'label'=>'x',
  37.     ));
  38.  
  39.     $verify=array();//tablica z polami błędnymi
  40.     if ($form->WasSubmit('go')) //czy wciśnięto go
  41.  
  42.     {
  43.  
  44.         $form->SetValues();//przypisanie wartości do pól
  45.  
  46.         $error=$form->Validate($verify);
  47.  
  48.         if (!$error && !$form->WasThisOperation())
  49.  
  50.         {//action
  51.  
  52.             
  53.  
  54.         }
  55.  
  56.     }
  57.  
  58.     
  59.     $form->AssignData($template);//przypisanie niezbędnych danych do obiektu smarty'ego
  60.     $template->assign('mark','<span style="color: red">[Popraw]</span>');//przypisanie komunikatu błędu
  61.     $template->assign_by_ref('verify',$verify);//przypisanie tablicy z błędnymi polami
  62. $template->register_prefilter('smarty_prefilter_formr');//załadowanie prefiltru
  63. ?>
To jest bardzo podstawowy i uproszczony kod winksmiley.jpg
szablon:
  1. {form_start}
  2. <table >
  3. <tr>
  4. <td>{label for="id1"}</td>
  5. <td>{input name="id1"}</td>
  6. </tr>
  7. <tr>
  8. <td>{label for="id11"}</td>
  9. <td>{input name="id11"}</td>
  10. </tr>
  11. <tr>
  12. <td>{label for="id2"}</td>
  13. <td>{input name="id2"}</td>
  14. </tr>
  15. <tr>
  16. <td>{label for="id3"}</td>
  17. <td>{input name="id3"}</td>
  18. </tr>
  19. <tr>
  20. <td colspan="2">{input name="go"}</td>
  21. </tr>
  22. </table>
  23.  
  24.  
  25. {form_end}

Tylko nie gancze mnie za <Table> - to stary kod smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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: 25.07.2025 - 10:47