DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Formulari i validacija (http://www.devprotalk.com/showthread.php?t=11)

bluesman 07. 06. 2005. 02:37

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?

godza 07. 06. 2005. 03:29

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.

Ilija Studen 07. 06. 2005. 09:37

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...

dinke 07. 06. 2005. 10:55

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.

Bojan Zivanovic 07. 06. 2005. 15:46

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? .

Ilija Studen 07. 06. 2005. 18:31

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.

Bojan Zivanovic 07. 06. 2005. 19:10

Ma opusteno, mislio sam samo da bacim oko... Nije hitno, ne zuri ;)

nixa 09. 06. 2005. 02:14

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 01:02.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.