Most ezen rágom át magamot
hxxp://www.devshed.com/c/a/PHP/Building-An-Extensible-Form-Validator-Class/1/
de utánna nézek, köszi...
Semmi esetre sem a tanulástól akartam a kedved elvenni, de nem tudhatam, hogy nem a többséghez tartozol és nem a könnyebb utat választod. :-)
Én is Delphi után tanulgatom a php/js cuccokat egyébként. Tök más téma, de javaslom, hogy vacakolj el az eclips, vagy netBeans programokkal. Gyorsan össze tudtam hozni netBeans-ben a debugolást. Nagy öröm volt számomra, hogy Delphi után "ismét", az F7/f8 billenttyűkkel lépkedhetek php kódon és nézegethetem a változók tartalmát.
Na, akkor mondok ötleteket mit csinálj. Első lépés, hogy találd ki a formod leírását és ehhez tervezz egy tömböt. Pl.:
Pár ötletet adtam, nyílván ki tudod egészíteni a sajátjaiddal. Másrészt a form-ra vanatkozó paramétereket rakd bele, az 'items' csak egy eleme a form-ot leíró tömbnek. Így kapsz egy osztály példány szerűséget. :-)PHP kód:
...
'items' => array(
array(
'label' => 'Felhasználónév',
'name' => 'nick',
'inputType' => 'edit',
'allowBlank' => false,
'validator' => array(
array(
// valakinek van ilyen email-címe
'nullIsValid' => true,
'sql' => 'SELECT 1 FROM advertiser WHERE nick = "{value}"',
'errorMsg' => 'Ezt az felhasználónevet már más felhasználó használja.'
)
)
),
array(
'label' => 'Jelszó',
'name' => 'password1',
'minLength' => 6, // minimum 6 karakter hosszú
'inputType' => 'password'
),
array(
'label' => 'Jelszó mégegyszer',
'name' => 'password2',
'inputType' => 'password'
),
array(
'label' => 'Teljes név',
'name' => 'name',
'inputType' => 'edit',
'allowBlank' => false
)
...
Két eljárást kell készítened, az egyik egy ilyen tömböt kapva elkészíti a html kódot, a másik pedig validál. Mivel ebben a tömben meghatározod az elemek típusát, így könnyen tudod mind a két irányt kezelni.
Utoljára módosítva: TZ. által : 2009-12-08 00:47
Nos arra jutottam, hogy a könnyebb utat választom mivel sok a változó és a név és a tipus ezért egy JavaScriptes megoldást alkalmazok, a kliens oldalon amit eléggé könnyü implementálni, majd a szerver oldalon is ellenőrzöm, csak ha nem stimmel valami akkor csak egy simma uzenetet irok ki, hogy menjen vissza és nézze meg, hogy mi nem jó.
JS : hZZp://www.javascript-coder.com/html-form/javascript-form-validation.phtml
Utoljára módosítva: 0xFF által : 2009-12-08 07:34
KForum: Hát... remélem csak átmenetileg fogyott el a lelkesedésed. A döcögös indulás után engem fellelkesítettél, hogy egy jó kis oktató topik lesz ebből. Azt terveztem, hogy ahogy haladsz csöpögtetem az újabb ötleteket, így tudnál mindig csak a lényegre koncentrálni.
Ezt késöbb akartam jelezni: triviális, hogyha generáljuk a form-ot, akkor generálhatjuk a JS validálást is típus ellenörzésre, kötelező mezőkre stb.,...
edem: Adott feladatra nagyon jó megoldásnak tűnik. Arra kitaláltatok valamit, hogy olyan ellenörzéseket is végezhessetek, ami nem található ki a tábla struktúrából? Pl.: minimum hossz
Ami kitalálható abba mennyire mentetek bele? Arra gondolok, hogy a fenti példámban szereplő egyediség ellenörzés végülis kitalálható, ha van egyediséget megkövetelő index az oszlopon.
Utoljára módosítva: TZ. által : 2009-12-08 10:03
Én úgy csinálom, hogy ami fontos, oda beírom a mező kommentjébe a kulcsszót, amire később keresek. Igazából ez egy eléggé egyedi eset, mert az egészet úgy kell megírnom, hogy később ne kelljen, vagy nagyon könnyen lehessen módosítani (az ügyvezetőnk tud programozni és szeretne ilyen kódot), ezért próbálok mindent dinamikusan felépíteni. Mondjuk én sem vagyok profi programozó, úgyhogy biztos van jópár dolog, amire jobb megoldások is vannak
Egy kicsit meredek ez még nekem sajnos, de vannak itt akik jobban ertenek ehez, és elmondhatják, hogy hogyan is kell egy formot generálni, majd validálni, nekem az okozta, a gondot, hogy a selectet és a checkboxokat is akarom validálni és nagyon sok munka lett volna vele.
Szerintem, ha mindenképpen meg akarod tanulni, és nem lemásolni a megoldást, akkor érdemesebb végigjárni a generációs fejlődés lépcsőfokait.
1. csináld meg úgy ahogy tudod
2. egyszerűsíts rajta, ha lehet akkor sokat
3. csináld meg a form generálását első lépésként
4. írd meg hozzá az ellenőrzés generálását is
5. egyszerűsíts a kódodon, kommentezd, tisztázd le, formai tagolásokkal tedd olvashatóbbá
Ez sok idődbe fog kerülni, de garantáltan sok-sok php-s tapasztalatra fogsz szert tenni, és meg is fogod érteni, mi miért hogyan történik.
Könyvjelzők