Organizacija u sistemu dinamičkih web formi ?
Pozdrav svim developerima,
Premišljam se oko organizacije dela sitema, pa bi mi savet dobrodošao. Ukratko treba da napravim da korisnici mogu kreirati ankete(web forme), ovo bi bili zahtevi: 1. Korisnik kreira web formu koja se čuva u DB 2. Drugi korisnici popunjavaju web formu i ti podatci se takođe čuvaju u DB 3. Pregled i analiza(grafikoni, pite..) tih podataka kao i serach. ___ 1. Odlučio sam se da ceo html forme smestim u DB, <form>.sve u DB..</form>, tako mogu lako da je prikazujem drugim korisnicima. S tim da bi svakako mora da imam veznu tabelu gde čuvam imana svih polja. 2. Kad se forma submituje, podatci iz nje se čuvaju u tabeli kao JSON string, sve iz $_POSTa se čuva kao JSON. 3. Problemi manje više dolaze ovde - npr. korisnik je napravio anketu gde postoji polje "Ime" i sad hoće da vidi sve koji su popunili anketu, a zovu se Marko ... ili posle nekog vremena, korisnik hoće da izmeni anketu (obriše polje) ... Da li neko vidi/zna probleme kod ovakve organizacije ?? Ili je imao iskustva sa sličnim stvarima ? |
Sama ideja da u DB snimaš HTML forme mi se nikako ne dopada. Sam si rekao šta ako neko hoće da promeni neko polje, ili samo naziv tig polja jer jer pogrešio u jednom slovu a ne menja se značenje.
Ja bih to ovako. 1 - Tabela tipovi polja u kojoj čuvam postojeće tipove (input, textarea, radiobutton, checkbox ... možda kasnije dođe jođ neki ali će se dinamički dodati) 2 - Tabela anketa gde snimamo osnovne informacije o anketi (naziv, opis ...) 3 - Tabela pitanja (naziv, tip polja) 4 - Tabela Ponuđenih odgovora 5 - Tabela sa odgovorima (id_ispitanjika, id_anketera, id_ankete, id_pitanja, id_odgovor, tekst_odgovora ...) Za svaki tip polja bih pravio klasu koja će implemetirati specifičnosti određeniog tipa (način snimanja rezultata, prikazivanje ponudjenih odgovora i slično). Idealno za Startegy patern. Ovakav sistem bi bio podložan promenama i nadogradnji. |
Tako nekako sam i ja prvobitno razmišljao, pa shvatio da onda moram dosta da se zezam kod prikaza(stilizovanja) te forme, jer korisnik može da kreira formu potpuno stilizovanu
nešto tipa: www.contactformgenerator.net 4 - Tabela Ponuđenih odgovora 5 - Tabela sa odgovorima Nema problem sa ovim stvarima :) jer pravim samo ankete, ne kviz... |
Razumem, nešto je složeniji zahtev, ipak i dalje bih išao sa istom postavkom samo što bih za svako polje sve opcije koje su vezane za prikazivanje čuvao serijalizovano u tabeli pitanje.
Serijalizovano bih čuvao sledeće Širina, broj redova, font, boja, itd. Znači sve ono što je vezano za sam izgled polja. Onda bih na osnovu tih podatajka iscrtavao samo polje. |
Meni isto deluje da je bolje snimati odvojeno podatke, pogotovo ako je potrebno da korisnik moze da edituje formu. Ali uvek mozes da snimis i jedno i drugo, i sve elemente kao sto Djuki kaze i finalni html...
|
Odvoji podatke / logiku / prezentaciju. Podatke drzis u bazi, logiku u nekim template fajlovima a prezentaciju u CSSu. Uvijek mozes dozvoliti korisniku da doda svoj CSS fajl i tako izmjeni prikaz ankete prepisivajuci tvoja predefinisana pravila.
|
Prov, Izviniti što sam bio odsutan neko vreme.
@misk0 Kako misliš da to ivedem? Tveje rešenje deluje ok teoretski ali da li je stvarno primenljivo? Ja planiram da kupim gotov 'form kreator' kao na linku www.contactformgenerator.net jer mi je teško da radim dizajn(css+html+js), ne bi ninašta ličilo :) E sad kad imam gotovo rešenje za generisanje formi želim da malo prilagodim backend i poenta mi je da ne radim uopšte na izmeni te forme, jer mi je mnogo lakše da radim šta god u php/sql nego da radim na Frontendu. Ideja od Ivanhoe-a ne izgleda loše s obzirom da imam jako malo dodatnog posla ... |
Definishes stilove za sve elemente koje imas na stranici tipa: naslov forme, opcija, radio, checkbox i slicno.
Kad korisnik kreira formu, spremis parametre forme - pitanja, odgovore, opcije.. i dozvolis mu da kreira i svoj CSS koji bi se ucitao poslije tvog defaultnog. Tim CSSom bi on mogao da izmjeni izgled onako kako njemu odgovara. Ili mozda ti nesto drugo nije jasno? |
Za css i podatke je jasno, nisam siguran na šta misliš kad kažeš
" ..logiku u nekim template fajlovima .." ? |
mislim na HTML kod koji je potreban za oblikovanje pitanja. Kao neki template-i. Mozes imati nekoliko vrsta koje ces ponuditi korisniku koji ih opet moze sa CSSom dovesti do forme koja njemu odgovara.
|
Vreme je GMT +2. Trenutno vreme je 01:54. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.