![]() |
Formulari i validacija
Ovih dana ponovo radim jedan projekat sa milion formulara. Muka mi je.
Deseti put sam odlučio da napravim neku klasu koja će ne samo da generiše formulare već i da radi validaciju. Pri tom sam ja malo megalomanski krenuo da radim i client i server validaciju, znači da porek standardne provere posle submit, generiše automatski i javascript koji će da proverava određena polja i pre submit. Naravno, što više radiš vidiš da je sve komplikovanije jer nailaziš na određena polja i tipove podataka koji ne mogu tako lako da se automatizuju. Ideja je da inicijalizujem klasu i dodajem polja tima $FORM->AddField ($name, $values, $type = 'text', $requied = true, $maxlen = 255) itd... pa onda: $FORM->generate(); Da li je neko imao nekih iskustava sa ovim, da li ste radili nešto slično i da li možda imate neki drugi koncept ili nesto? |
Takodje cu da uradim isto sto i ti hoces, vec dugo se nagovaram da to uradim...
Ali da ovaj moj post ne bude besmislen, reci cu vam ko je to uradio i da to resenje fercera. Naime radi se o Iliji Studenu, koga cu uputiti na ovaj forum cim se bude pojavio u kancelariji. |
Napravio sam jedano prilično zgodno rešenje, ali daleko od toga da je jednostavno. U pitanju je sistem za generisanje i procesiranje formularan baziran na komponentama.
Komponente nasleđuju BaseComponent klasu i imaju ime, raspon vrednosti i niz apstraktnih metoda (checkRange, checkValue, getComponentCode...). Svaka prava komponenta implementira ove metode. Lepota ovog sistema je što je užasno fleksibilan i proširiv jer sve leži u nasleđivanju. Tako npr. imamo bazni tekst input. Ništa ne radi, samo vaća kod i vrednost kao string. Međutim, iz njega nasleđujemo Float input, Integer input, Text input i dodajemo kojekakve validacije. Pošto se sama komponenta brine za serverside validaciju onda se može sastojati i iz više kontrola. Npr. datum pomoću 3 select boxa, kompleksna WYSIWYG editor itd. Dalje, tu je Form klasa koja se brine o printanju formu, validaciji i skupljanju vrednosti. Doda joj se niz komponenti, a onda pozove renderForm funkcija. Kada je potrebno skupiti sve vrednosti samo se kaže collectValues koja vrati FALSE ukoliko postoji greška. Problem je u tome što sam i ja već ispustio sve detalje ovog sistemčića jer je ušniran u jedan od starijih projekata i nemam ga u "samostalnom" obliku. Par puta mi je zatrebao, ali nikako da sednem i "izvučem" ga. Inače, koncept je jako dobar, a forme se prave dok kažeš keks... |
Pogledaj pear::HTML_QuickForm
http://pear.php.net/package/HTML_QuickForm A dokumentaciju imas ovde . Licno je nisam koristio preterano jer ja preferiram da radim kroz smarty, a takodje 2 godine sam na stalnom poslu koristio neki "rotella framework" koji je slicne stvari odradjivao sam. No video sam jako fine primere koriscenja HTML_QuickForm-a u knjizi Harry Fuecka pa svakako pogledaj da li bi ti ovo moglo odgovarati. |
Evo, baš ovih dana sam krenuo i ja da radim na problemu generisanja formi...
Uzeo sam webform klasu (deo WebObjects klasa koje razvija vladeck), proširio je i može da radi ok posao, jedino što nema uradađenu validaciju... Ali ima vremena :) Ilija, jel ima šanse da podeliš kod te tvoje klase? . |
Drage volje, samo ne u neko skorije vreme pošto baš sad imam jedan prilično tesan rok (englezi imaju super reč za to - deadline, ali bukvalno :( ), a i jednu malo glomazniju aplikaciju privodim kraju. Možda krajem meseca, mada ništa ne obećavam... Ima tu dosta posla, posebno ako hoću da napravim smislen paket sa relativno dobrom dokumentacijom.
|
Ma opusteno, mislio sam samo da bacim oko... Nije hitno, ne zuri ;)
|
to bi bilo generalno jako dobro da se uradi ,jer mene generalno sve sto ima vise od 4 objekta u formi mrzi da radim neku extra validaciju ( php i js u isto vreme) ,a ovako bi bilo lagano :)
|
Vreme je GMT +2. Trenutno vreme je 14:39. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.