Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dinamicko kreiranje forme

[es] :: PHP :: Dinamicko kreiranje forme

Strane: 1 2

[ Pregleda: 6542 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Dinamicko kreiranje forme04.09.2007. u 08:01 - pre 210 meseci
Imam zadatak da napravim stranicu na kojoj ce korisnik sam kreirati formu za kontakt.
Na primer korisnik treba da ima mogucnost da sam doda koliko zeli polja, i da sam odabere vrstu polja- input field, textarea itd...
Zadatak podrazumeva da forma ne bude predefinisana, odnosno da moze imati n polja za unos. Korisnik odredjuje imena labela, tako da na primer on moze zeleti da ima 10 input polja: Ime, Prezime, Email, Zanimanje itd...

Da li neko ima ideju kako to uraditi?
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dinamicko kreiranje forme04.09.2007. u 08:25 - pre 210 meseci
Ja sam radeo nesto slichno,a mislim da znam ko ti je i dao zadatak (ako je u pitanju anketa)
Imas tabelu u kojoj drzi tipove podataka (samo reference radi i prikazivanja typa administratoru, cisto da ne hardkodiras) npr. textfield, checkbox, texarea, listbox...
Tabelu u kojoj zapises elementarne podatke forme (id, date, name...)
Tabelu u kojoj uneses koje sve elemente koje ima forma (id, fk_forma_id, fk_elemet_type_id, labela, mozda i ordering ako ti treba)
Tabela u kojoj smestas prave vrednosti koje je krajnji korisnik uneo (forma_id, fk_element_forme, vrednost_krajnjeg_korisnika)
E sad, ja sam to bio mnooogo komplikovao oko polja "vrednost_krajnjeg_korisnika" trudeci se da odrzim optimizovanu bazu, pa sam umesto tog jednog polja imao jos razclanjivanje po tipu podataka na jos 5 polja i mnogostosta, mada mi je posle iskusniji kolega rekao da ne bi skodilo da to polje bude tipa text, jer je mnoooogo lakse ovim pristupom nego onako kako sam ja resavao.
Mozda ce ti trebati jos jedna tabela za listboxove (predefinisane vrednosti) i mozda sam negde propustio neko polje, pisem napamet...
Ako neko ima nesto pametnije, i mene bi interesovao princip, jer mi se dobar deo cms-a zasniva ne ovom principu.
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.228.*



+35 Profil

icon Re: Dinamicko kreiranje forme04.09.2007. u 11:07 - pre 210 meseci
Da li ti treba i skript koji ce 'procesuirati' formu?
Znaci da se pri kreiranju forme automatski kreira i kod koji salje podatke na mejl koji je korisnik definisao, ili ti je potreban samo go (html)dokument?
Korisnik iskuca sta zeli i klikom na submit dobija html kod za copy->paste.(a moze i gotov html dokument)

Mislim da bi moglo i bez baze...
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dinamicko kreiranje forme04.09.2007. u 11:16 - pre 210 meseci
Hehe, dobro pitanje

ja odma zapucao ko blesav na najteze moguce
Daj malo vise detalja o samom zadatku...
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.sbb.co.yu.



+19 Profil

icon Re: Dinamicko kreiranje forme04.09.2007. u 11:19 - pre 210 meseci
Evo (ako je u pitanju anketa) kako sam ja to napravio u jednom projektu (3 tabele):
Tabela anketa ima Id ankete i tekstove uvoda i zahvalnice koji se prikazuju pre i posle popunjavanja.
Tabela pitanja ima Id pitanja, Id ankete, Oznaku tipa pitanja, Naslov pitanja (kratak), Tekst pitanja, Required fleg, Opcije, Redosled.
Tabela odgovora ima Id odgovora, Id ankete, Datum, Odgovori, Oznaku korisnika.
Gde je:
Oznaka tipa pitanja običan integer a skript interno razume da je 1-input/text, 2-textarea,...
Naslov pitanja služi da se prikaže boldovano iznad teksta pitanja, da se prikaže na vrhu stranice kao "zaboravili ste da odgovorite na pitanje 'Radno mesto'. " umesto da mu tu piše ceo tekst pitanja, i da se doda ispred odgovora kad adminu bude pregledavao odgovore.
Required fleg (integer ili char(1) ) ako je postavljen onda korisnik mora da da odgovor na to pitanje.
Opcije su polje tipa text a prikazane adminu kao textarea, tu se u enter-separated obliku drži spisak naslova/opcija za <select> listu, za niz checkboxova i niz radio dugmadi.
Odgovori su polje tipa text gde u enter-separated obliku čuva sve odgovore jednog ispitanika. Znam, ovo je moglo i da se razbije i na poseban red za svaki odgovor.
Oznaka korisnika je id registrovanog člana sajta ako je registrovan ili IP adresa ako nije.

Edit: Eto, i ja odma zapucao ko blesav na najteze moguce

[Ovu poruku je menjao mVeliki dana 04.09.2007. u 13:04 GMT+1]
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.228.*



+35 Profil

icon Re: Dinamicko kreiranje forme04.09.2007. u 11:30 - pre 210 meseci
Citat:

Imam zadatak da napravim stranicu na kojoj ce korisnik sam kreirati formu za kontakt.


@mVeliki, mislim da nije to u pitanju(slicno je, ali nije isto).
U pitanju je kontakt forma, sa mogucnoscu dodavanja neogranicenog broja text field-ova, drop down box-ova, textarea field-ova, radio dugmica, itd... ali hajde da sacekamo postavljaca teme. :)

 
Odgovor na temu

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Re: Dinamicko kreiranje forme04.09.2007. u 13:01 - pre 210 meseci
Kelja, u pravu si.

Dakle, neko, kao administrator sajta, zelim da napravim u okviru jednog menija(stranice) jednu kontakt formu koja u sebi sadrzi: ime, prezime, email, subject, poruka.

u okivru drugog menija zelim kontakt formu, ali ovog puta da ona sadrzi razlicita polja od prethodne. ili ista, svejedno je.


Elem, ja treba da omogucim tom administratoru da on sam odabere koliko input polja, check boxova, textarea, sa sve njihovim labelima, taj administrator postavi kroz neki admin panel, i da se ta kontakt forma zatim pojavi kao gotova posetiocu odredjene stranice.

zadatak je dakle:
Administrator ulazi u admin deo sajta, klikne na kreiraj novu kontakt formu.
i onda kreira novu kontakt formu sa neogranicenim brojem i vrstom elemenata forme po njegovom izboru.

Nadam se da sam sada malo bolje objasnio? :)

eh, da script koji ce procesuirati formu- izgleda da cemi trebati, nije problem da napisem script koji procesira 'fiksnu' kontakt formu, ali za ovo mi nesto bas i nije jasno kako cu uraditi.
A mislim da mi je potrebno par tabela koje ce pamtiti kako koja kontakt forma u okviru neke stranice izgleda. npr. tabela forma_stranice koja bi imala vrednosti id_forme i _id_stranice i td...
 
Odgovor na temu

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Re: Dinamicko kreiranje forme05.09.2007. u 10:44 - pre 210 meseci
neka ideja drugari? :)
 
Odgovor na temu

centaur
Beograd

Član broj: 65691
Poruke: 407
*.ikomline.net.

ICQ: 249678363
Sajt: www.pavko.net


+24 Profil

icon Re: Dinamicko kreiranje forme05.09.2007. u 22:46 - pre 210 meseci
Ovo moze da bude kvalietna tema (na ovom forumu ih je nekako sve manje!!!).

Pre svega potrebano je resiti bazu.
Dobra polazna osnova je ono sto je rekao dakipro.
Krenes odatle, pa posle dodajes polja kako se ukaze potreba (u zavisnosti od toga sta sve hoces)

Kod programiranja zahtevi bi mogli da budu sledeci:
-Treba napraviti HTML za formu na osnovu podataka iz baze
-Bilo bi lepo dodati i JavaScript validaciju te forme
-Sve to (HTML + JavaScript) treba iskesirati, da se ne "pravi" svaki put is pocetka
-Bilo bi dobro u sve to dodati i captch-u
-Treba automatski skupiti sve podatke kad se forma submituje
-Treba odraditi server side validaciju
-Treba napraviti query koji ce se izvrsiti ako je sve OK

Sve to nije bas lako napraviti.
Ja vec dve nedelje u slobodno vreme, koga doduse ima malo, radim takvu klasu.Jos je nisam zavrsio, ali je pri kraju.
Jednom kad napravis da sve to radi, zamisli samo koliko ces sebi ustedeti vremena u kasnijem radu sa formularima.
Ti kreni lagano, pa kad naidjes na problem, pitaj.

PS Ovde mozes da vidis kako bi to moglo da izgleda:
http://www.devshed.com/c/a/PHP...ing-the-Form-Generator-Module/
a baci pogled i ovde http://www.phpclasses.org/browse/package/1.html











[Ovu poruku je menjao centaur dana 05.09.2007. u 23:59 GMT+1]
Powered by Slackware 13
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dinamicko kreiranje forme05.09.2007. u 23:11 - pre 210 meseci
Pa ja sam formu generisao sa nizovima, tipa name="txt[$idSameOpcije]", name="int[$idSameOpcije]", name="var[$idSameOpcije]",... gde je $idSameOpcije iz "Tabele u kojoj uneses koje sve elemente ima forma", a to da li ce da pise txt, int, var zavisi od toga kog je tipa tajl element forme. Posle samo foreach $_POST['int'] i za kljuc se dobije id polja za koji se vezuje odgovor.A validacija je logichna, posto se ocekuje int, txt itd.. naravno, mogu se ubaciti novi elementi, tipa name="mail[$idSameOpcije]", stim sto bi se tretirao kao varchar za bazu, recimo. Moze i sa vise dimenzija niza, ali tad nisam znao programiranje dovoljno
Dobra je ovo fora sa dinamichkim formama, ja sam ovako organizovao cms nastrojen katalozima, pa mozes da pravis katalog filmova (samo dodas polja, dinamichki, npr: glumci, godina izdanja, NOVO, itd) i od istog sajta, sa istom logikom i u istoj tabeli napravim katalog oglasa (sa svojim poljima), html stranice, banere, reklamne poruke, vesti itd... praktichno je moguce sve napraviti iz administracije.Samo sto se dinamichke forme nisu pravile za kontakt, vec za ubacivanje/editovanje itema na sajtu. Sve se podeli po kategorijama, mozda se nesto hardkodira kako bi administratoru bilo logichnije da banere trazi u Baners a ne u Items meniju. Takodje se ubace dinamichki template fajlovi (smarty u konkretnom sluchaju), pa za vesti imaju drugacije stilove itd...
Pravljenje sajta od nule, se praktichno svede na unosenje oblika dinamichkih formi, sve kroz jedinstvenu logiku u administraciji. Naravno, nisam ja sve ovo izmislio, nesto sam maznuo od flylord-a
 
Odgovor na temu

Zmaj
Predrag Krstić
web developer
Zrenjanin

Član broj: 1035
Poruke: 382

Sajt: https://pkrstic.wordpress..


+4 Profil

icon Re: Dinamicko kreiranje forme06.09.2007. u 01:59 - pre 210 meseci
Citam sve ovo, i neke stvari mi nisu jeasne, tj problemi koje ja vidim, na osonovu dosadasnje price:
1. gde ces cuvati podatke iz samih formi, mislim u kojoj tabeli, tj kakva je struktura te tabele
2. kako ces ti znati kasnije koje treba da pokazes
3. sta sa podacima kasnije, kako ce tvoja aplikacija znati da ih tumaci
4. da li ti podaci treba kasneije da se edituju

to je ono sto mi pada na pamet, a svi problemi koji nastaju su vezani za nepoznanicu koja je svrha tih podataka kasnije. Ako ce ti podaci kasnje sluziti samo za citanje onda ih sve smesti u jedan veliki tekst i tako ih upisi u bazu i ispred svake stavke dodaj naziv tog poplja (smislen).
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dinamicko kreiranje forme06.09.2007. u 08:10 - pre 210 meseci
Pa cuvanje podataka je najlaksi deo, tabela ima
id | form_id(mozda i ne treba) | id_pitanja (samog polja ankete) | odgovor

na osnovu form_id-ja znas kad da ih pokazes (mozda i ne treba ovaj form_id, moze da se dobije preko id_pitanja, ali je ovako brze ili lakse) a na osnovu id_pitanja znas na koje pitanje je odgovor i kog je tipa. A edit je na osnovu sopstvenog id-ja.
Mislim da bi ih cuvanje u text polju ucinilo beskorisnim.
 
Odgovor na temu

centaur
Beograd

Član broj: 65691
Poruke: 407
*.adsl.sezampro.yu.

ICQ: 249678363
Sajt: www.pavko.net


+24 Profil

icon Re: Dinamicko kreiranje forme06.09.2007. u 10:08 - pre 210 meseci
Citat:
Zmaj
3. sta sa podacima kasnije, kako ce tvoja aplikacija znati da ih tumaci


Sva logika je u jednoj, ili jos bolje, vise klasa.
Baza sluzi za tip polja, ime polja, tip podataka (zbog provere), da li je polje obavezno ili ne....i naravno rezultate.

Postoji jos jedna veoma korisna stvar sa klasom ovakvog tipa.
Administracija nekog sajta se dobrim delom sastoji od nekih formulara za unos npr vesti, clanaka i ko zna cega.
Znaci treba ti da napravis formular, skupis vrednosti, izvrsis validaviju i snimis u neku tabelu.
Onda recimo sve to radis ovako (karikiram maximalno ali je princip taj)
Code:

$form = new Form();
$form->JS_validation = true;
$form->db_table = 'tabela';
$form->add ('ime_kolone_u_bazi1', 'input', 'naziv_polja_u_formularu1', 'neki_opis_polja1', 'default_vredmost1', INT, REQUIRED );
$form->add ('ime_kolone_u_bazi2', 'input', 'naziv_polja_u_formularu2', 'neki_opis_polja2', 'default_vredmost2, INT);
$form->add ('submit', 'submit', 'Sacuvaj',);
$html = $form->getForm();


Dobijes HTML za formu.
Onda posle popunjavanja forme ide nesto ovako:

Code:

$form = new Form();
$form->JS_validation = true;
$form->db_table = 'tabela';
$form->add ('ime_kolone_u_bazi1', 'input', 'naziv_polja_u_formularu1', 'neki_opis_polja1', 'default_vredmost1', INT, REQUIRED );
$form->add ('ime_kolone_u_bazi2', 'input', 'naziv_polja_u_formularu2', 'neki_opis_polja2', 'default_vredmost2, INT);
if ($form->validateFields())
{
     $q = $form->getQuery();
     //I sad imas query koji ubacis u bazu
}else{
     $form->add ('submit', 'submit', 'Sacuvaj',);
     $html = $form->getForm();
     //Greske pri validaciju su recimo smestene u $form->errors
}



E to mnogo stedi vreme.
Powered by Slackware 13
 
Odgovor na temu

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Re: Dinamicko kreiranje forme06.09.2007. u 11:45 - pre 210 meseci
Odosmo u ankete :)

Zapravo dinamicka forma bi trebala da bude univerzalno resenje bilo da se radi o anketi ili o kontakt formi. Konkretno ovde se radi o kontakt formi. Znaci da ce se polja koja definise administrator sajta, kreirati prilikom poziva stranice kojoj je dodeljena kontakt forma, i odatle klikom na submit, upisati u bazu, i poslati mail na zeljene email adrese.
Problemi sa kojima se susrecem u razmisljanju su sledeci:
mislim da nije problem napraviti nesto tipa:
izaberi vrstu polja: text, text area, select, radio...
Ako izabere recimo text input, onda ga odvesti na sledeci korak i ponuditi:
upisi osobine polja: pasword, email, simple text input...
Upisi naziv polja: npr. UserName ili UserEmail...
Upisi Label za polje: npr. Korisnicko ime ili Upisite Vas Email...
Da li zelite da kreirate novo input text polje? Da - ponavlja proces, a iznad novog polja koje kreira ispisujem polje koje je vec zavrsio i odredio, i tako dalje
Ukoliko kaze Ne - vracam ga ponovo da bira sledecu vrstu polja- npr textarea i onda ponavlja korake za definisanje osobina novo textarea polja.

Sve to negde upisem u bazu vezano za ID te forme. Mislim da tako mogu kreirati formu za kontakt.

Problem1: Ukoliko izabere select, koji je vezan za podatke iz baze, kako procesuirati? I dalje, ukoliko drugi select veze za prvi- npr, kada iz padajuceg selct menija izabere grupu Administratori, u selectu pored izlistati mu samo pripadnike te grupe. Ovo sam pravio i radio i znam da napravim van dinamickog kreiranja i cele ove ideje.
Problem 2. Obzirom da se radi o kontakt formi, kako ce script koji salje mailove znati na koju adresu i sta da poslje? kako ce znati koja je polja administrator odredio za 'sadrzaj poruke', 'subject', 'email primaoca'?

Trenutno radim na kreiranju tabela, pa kada zavrsim postavicu ih ovde da razmenimo misljenja.

Misljenja sam da bi kreiranje ovkve forme svima nama olaksalo zivot u nekom smislu :) meni pogotovo :)

 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dinamicko kreiranje forme06.09.2007. u 12:04 - pre 210 meseci
Za select napravis novu tabelu typa_select_options gde pises form_id, parent_id (ovo ako hoces da ima vezane select opcije, sa nekoliko dubina), select_field_id (za samu opciju forme). Polje za slanje maila, mozes da dodas uz glavnu tabelu, kao uvek dostupno (mada nije uvek potrebno), mozes da dodas poseban (specijalan) tip polja, koji ako se pojavi, logika ce tamo da salje mail(ovo je najbolja varijanta), a losija varijanta je da hardkodiras ako ikako mozes :)
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.207.*



+35 Profil

icon Re: Dinamicko kreiranje forme09.09.2007. u 00:26 - pre 210 meseci
Evo da malko ozivim temu.
Odavno sam imao nameru da napravim nesto slicno onome sto je i @vladimirn hteo.
S tim sto nisam formu zamisljao u okviru nekog admin panela(CMS-a), nego sam hteo da napravim skripticu idealnu za one koji imaju osnovno HTML predznanje, a nece da se bakcu sa php-om. :)
Nesto kao "Kreirajte kontakt formu ONLINE sa(samo) dva klika!".
Kasnije sam video da takve stvari(vec) postoje na netu, mada nisu preterano zastupljene...
Ali, posto ja volim da izmisljam toplu vodu,
zbrzao sam neko megajednostavno, uprosceno resenje:

http://sinisa.milicevici.com/contact_former/

Podrzani tipovi polja su(za sada!) text field(email polje) i text area, znaci ono sto je potrebno za najsiroviju mogucu kontakt formu.
Naravno, ako bude zivaca i vremena, usledice ozbiljna prosirivanja(bice ukljucene sve vrste input fieldova: check boxovi, drop-down boxovi, radio dugmad, postavljanje mail headera, mnogo ozbiljnija, custom validacija(npr da korisnik bira kako srediti string), pa onda bi moglo i neko 'stilovanje' forme,pa zasto ne i captcha, itd itd...)

Voleo bih da cujem vase komentare.
P.S. Moguce da ima nekih bagova, validacija je prilicno neprijatna, bice poboljsana(vracanje na stranu sa formom), ali ovo je tek 'kostur' skriptice...
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dinamicko kreiranje forme09.09.2007. u 02:12 - pre 210 meseci
Svidja mi se u potpunosti. Iako sam navikao na 'teske' skripte, simplicity u ovom slucaju je sasvim ok. Postoji dobar deo trzista gde ljudima treba ovako 'cipas-i-nemislis' instant stvarcica. Naravno, postoji mesto nadgradnji, ali to je vise stvar kozmetike. ;)
 
Odgovor na temu

centaur
Beograd

Član broj: 65691
Poruke: 407
*.ikomline.net.

ICQ: 249678363
Sajt: www.pavko.net


+24 Profil

icon Re: Dinamicko kreiranje forme09.09.2007. u 10:13 - pre 210 meseci
@kelja
Za početak je sasvim OK.
Za pravu upotrebnu vrednost treba dodati sve ovo što si rekao.

Uskoro će i moja klasa (tj više klasa) biti gotova pa ću da okačim i ja.
Powered by Slackware 13
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
91.150.99.*



+35 Profil

icon Re: Dinamicko kreiranje forme09.09.2007. u 11:06 - pre 210 meseci
Hvala na lepim recima, one su podstrek da nastavim da radim na ovome.
Ako upristojim kod, mozda cu ga i dati na uvid zajednici. :)
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dinamicko kreiranje forme09.09.2007. u 11:16 - pre 210 meseci
Citat:
kelja: ... mozda cu ga i dati na uvid zajednici.

posle ovolike silne hvale, SIGURNO ces ga dati na uvid
Ne hvalimo mi ovde za dz
 
Odgovor na temu

[es] :: PHP :: Dinamicko kreiranje forme

Strane: 1 2

[ Pregleda: 6542 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.