DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Programiranje (http://www.devprotalk.com/forumdisplay.php?f=23)
-   -   Organizacija u sistemu dinamičkih web formi ? (http://www.devprotalk.com/showthread.php?t=11247)

tasmaniski 11. 10. 2012. 11:08

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 ?

Djuki 11. 10. 2012. 11:44

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.

tasmaniski 11. 10. 2012. 12:07

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

Djuki 11. 10. 2012. 12:18

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.

ivanhoe 11. 10. 2012. 15:19

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

misk0 11. 10. 2012. 22:05

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.

tasmaniski 19. 10. 2012. 15:19

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

misk0 20. 10. 2012. 19:38

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?

tasmaniski 21. 10. 2012. 14:26

Za css i podatke je jasno, nisam siguran na šta misliš kad kažeš
" ..logiku u nekim template fajlovima .." ?

misk0 21. 10. 2012. 19:35

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 19:32.

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.