Sziasztok!
Szeretnék készíteni egy egyszerű form gyártó alkalmazást php-ben.
Az elképzelés az, hogy lenne egy központi leíró fájl (XML, ini szerkezet, vagy bármi), ami segítségével a frontenden ki tudom egyértelműen tenni a form elemeket, a backend-en pedig le tudom validálni azt.
Valami olyasmire gondoltam a leíró fájlban, mintha HTML-t írnék, de plusz információkkal, hogy a backend is tudja, hogy mit kell csinálni.
Pl.:
< input type="text" name="inputmezo" id="inputmezo_id" class="red blue" required="true" constraint="[A-Z0-9]" / >
< select name="selectoption" id="chooseone" onchange="change_the_world()" elements_from="$select_elemts" / >
Jó-e az elgondolás, vagy rossz felé haladok?
Néztem pár eszközt, amivel XML fájlból tömböt lehet generálni, de nekem az verébre ágyú.
Nekem elég lenne a fentivől ennyi:
Array(
input => Array(
type => text
name => id
stb.
)
)
Ha ez meglenne, akkor innentől már a frontent és a backend is tudná végezni a dolgát.
Írjak saját parsert, vagy ismer valaki egy egyzserű megoldást a problémára?
Üdv: redman
- 2510 megtekintés
Hozzászólások
arra gondolsz, hogy mondjuk JSON-ben ábrázolt olyan szerkezet amit irtal, s azt dolgozza fel pl jQuery kliensoldalon vagy pl PHP szerveroldalon?
- A hozzászóláshoz be kell jelentkezni
Nem igazán. Javascriptet csak a validáláshoz (kliens oldalon) használnék.
A leíró fájl alapján kirakná a php a felhasználó elé a formot, majd azt postolás után ellenőrizné is ugyanezen fájl alapján.
- A hozzászóláshoz be kell jelentkezni
validációhoz át kell adni neki az infót :)
illetve jQueryvel lehet emulalni html5 fícsöröket.
- A hozzászóláshoz be kell jelentkezni
Ilyennel mar en is probalkoztam sokszor, de mostanaban egyre jobban hatterbe szorul a dolog, nem csinalok annyi weboldalt. Mindenesetre nekem is kb. ez volt az elgondolasom. Viszont biztos van ra kesz megoldas.
- A hozzászóláshoz be kell jelentkezni
Igen ezt a kész megoldást keresem én is. :)
- A hozzászóláshoz be kell jelentkezni
Persze, egyszer én is csináltam majdnem egyet, belső használatra, de amikor kiderült, hogy nem ingyen dolgozom (lásd: költséghely), kvázi le lett fújva (lásd: "rendben, még beszélünk róla")...
Szabadidőmben meg nem fogok dolgozni.
De ha kijózanodom, talán összedobhatnánk valamit gépéelbe (majd letrehozunk ra bizottsagot) :-)
- A hozzászóláshoz be kell jelentkezni
Benne vagyok :)
Én mindenképpen szeretném megcsinálni, ha van szabadidőd és segítesz, akkor annak csak örülök.
Vigyázz nehogy nagyon másnap legyen holnap. :)
- A hozzászóláshoz be kell jelentkezni
Szerintem ez egy elég komplex dolog, nem lehet ilyen xml-es hozzáállásal nekilátni. Értsd: nem az a kunszt, hogy felismered, hogy jo lenne valahol valamit definiálni, aztán máshol megjelníteni, hanem az, hogy fel tudod oldani az itt még nem v. csak érintőlegesen felmerült ellentmondásokat. pl. egy select form mező elemei gyakran egy adatbázis lekérdezésből jönnek on the fly, így itt a mező értékészletét nem tudod az leiró xml -ben rögzíteni. Mivel ez az értékkészlet kell h az alapja legyen a validálásnak így a validálást sem tudod itt definiálni. Ha már validálás, pl elég babrás meló olyat írni, ami legenerálja a mind a javascript ellenörző kódot, mind a PHP ellenörző kódot - figyelve olyan nyalánkságokra, hogy esetleg ajax -on keresztül is lehessen kitöltés közben ellenörizni az adatokat. Vagy egy-egy beviteli mező különböző formokban is felbunkanhat eltérő validálási szabályokkal, szűrőkkel. Ráadásul az is jó lenne, ha amolyan CRUD -os módiként adatbázis alapján is lehetne generálni a formot. Vagy az is jó lenne, ha különböző template megoldásokhoz könnyen illeszthető lenne, illetve nem csak html -t, de akár PDF -t (nyomtatott formát) vagy konzolos "ürlapot" is lehetne generálni.
Tehát az "egyszerű megoldás" -t felejtsd el! Ha három betű akkor szvsz nem XML, hanem OOP a jó irány! :-)
- A hozzászóláshoz be kell jelentkezni
Nemtom az XML miota zarja ki az OOP-t, es mutattam mar be ilyet egy ora alatt nullarol implementalva, igaz, nem XML volt a leiro sose (nem is szeretek XML leirokkal dolgozni sajat, belso szoftvernel). Nyilvan az edge case-ek implementalasa tobb ido, de annyira ez nem veszes. Kezdje el, aztan majd inkrementalja, nagyon jol megirtak ezt mar masok is, majd lop.
- A hozzászóláshoz be kell jelentkezni
Most látom, hogy nem jelent meg a példa kód, javítottam.
Tehát abban látszik, hogy a selectnél az elemek egy megadott változóból jönnek, azt természetesen előtte legyártanám.
- A hozzászóláshoz be kell jelentkezni
Aham. És mit keres az XML -ben egy PHP változó? :-ZZZ
- A hozzászóláshoz be kell jelentkezni
Az csak egy string. Jelzi, hogy ebből a változóból kell kivenni az option tageket.
lehetne ez is: *select_elements
- A hozzászóláshoz be kell jelentkezni
De ugye érzed, h ez így gányolás? Hogyha xml -t akarsz, akkor használj xslt -t a megjelenítéshez és xsd-vel ellenőrizhetsz! Szerintem jobb az OOP! Probáld meg osztályokban, objektumokban elképzelni az ürlapot, annak elemeit és azoknak a [z együtt]működését! Így sokkal kevésbé leszel késöbb korlátozva. pl. csinálhatsz ajaxon keresztüli szerveroldali eseményvezérelt alkalmazást. Nekem volt ilyen melóm, ilyen biztosítós cucc, több száz formelemmel, amik megjelentek-eltüntek ill. egyéb tulajdonságaikat is változtatgatták /pl. kötelező-e kitölteni?/ annak függvényében, h egy másik form mezőben éppen mi történt.
- A hozzászóláshoz be kell jelentkezni
részletkérdéseken rugózol.
- A hozzászóláshoz be kell jelentkezni
Ez egy jo hozzaallas, igy mukodott a jo-hely rendszere is, ezt tudja a Symfony sfForms osztalya, ill. anno egy privat PHP frameworkunk is ezt tudta.
Az XML viszont bonyesz lesz neked, hasznalj yaml-t vagy json-t, alt. hozzatartozik ezekhez egy kapcsolodo widgetstruktura, nezd at a symfony 1.x-et minimum.
- A hozzászóláshoz be kell jelentkezni
épp az jutott eszembe miközben olvastam, hogy már semmi pénzért nem állnék neki megírni ilyet. a symfony2 form-validator-doctrine trió olyan jó lett, hogy élmény vele dolgozni. (+form-admin-model generátor)
persze amikor fiatal és bohó voltam simán írtam néhányszor ilyet.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni