Dynamische Velden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Herman Van der Zandt

Herman Van der Zandt

27/12/2010 20:31:22
Quote Anchor link
Beste PHPhulpers,

Voor het vak Informatica op school hebben we een standaard site moeten maken( als eerste project). Nu moeten we daarop een uitbreiding maken( door aanvullende eisen die gegeven zijn).
Het grootste gedeelte is me gewoon gelukt, alleen bij de onderstaande opdracht kom ik er niet helemaal uit:

// deelopdracht //
De velden die je bij een evenement kunt invullen zijn eigenlijk per evenementsoort verschillend. De wens is om dit uiteindelijk volledig dynamisch te maken: de beheerder van de site moet evenementsoorten kunnen aanmaken met de daarbij behorende velden die een vereniging mag invullen bij het aanmaken van een evenement van die soort. Ieder veld heeft hierbij zijn eigen type. De types die ondersteund moeten worden zijn: getal, tekst, plaatje en HTML. Afhankelijk van het type toont het systeem verschillende invoervelden bij het aanmaken en tonen van een evenement.
Bij elk veld kan de beheerder ook aangeven of dit een verplicht veld is.
////

Kan iemand mij misschien wat tips( of voorbeelden) geven hoe ik dit moet aanpakken?, dat zou echt bijzonder fijn zijn!
Gewijzigd op 27/12/2010 20:42:38 door Herman Van der Zandt
 
PHP hulp

PHP hulp

12/01/2025 15:58:17
 
Bart V B

Bart V B

27/12/2010 20:48:17
Quote Anchor link
Waarom zou een beheerder html moeten ingeven?
Ik bedoel, dat is gewoon een editor maken.
Dat heeft totaal niets met een dynamische website te maken. ;)
Een getal kan je controleren met
ctype_digit() : http://nl2.php.net/manual/en/function.ctype-digit.php
tekst met is_string(): http://nl2.php.net/manual/en/function.is-string.php
een plaatje is een ietsje ander verhaal, dat kan met image_type_to_mime_type()
http://nl2.php.net/manual/en/function.image-type-to-mime-type.php
Zie eerste voorbeeld. ;)

Dan is het nog een beetje met ifjes en elsjes spelen wat verplicht moet worden.
 
Herman Van der Zandt

Herman Van der Zandt

27/12/2010 20:56:35
Quote Anchor link
Het is de bedoeling dat de beheerder van de site velden( die dus tekst,HTML,getal of plaatje mogen zijn) aanmaakt voor een bepaald type evenement. De vereniging moet deze velden invullen bij het aanmaken van een evenement.

Maar nu twijfel ik of ik een extra tabel in de database moet aanmaken ( met daarin bijvoorbeeld : Soort evenement, type veld ,verplicht).

Maar bedankt voor je tips, daar kan ik wel wat mee!
Gewijzigd op 27/12/2010 21:01:16 door Herman Van der Zandt
 
Aad B

Aad B

27/12/2010 21:09:23
Quote Anchor link
Tabellen: evenement en evenement_veld. In de eerste tabel de gegevens van het evenement en in de tweede tabel die dus een 1:N relatie heeft met de eerste tabel plaats je de gegevens van de evenement velden waaronder "verplicht J/N". Je kan dus in de tabel evenement_veld oneindig aantal velden aanmaken. Hierop bouw je een scherm "aanmaken evenement". Een tweede scherm is invullen evenement en hier heb je ook weer tabellen nodig maar misschien valt dat buiten de opgave. Het scherm aanmaken evenement bouw je op door de evenenements gegevens op te halen en in te laten vullen alsmede een loop te bouwen die losse evenement velden maken mogelijk maakt etc. Aardige klus allemaal...je bent bijna een applicatie aan het bouwen.
Gewijzigd op 27/12/2010 21:11:34 door Aad B
 
Bart V B

Bart V B

27/12/2010 21:13:02
Quote Anchor link
Dus eigenlijk wil je het systeem zo opzetten dat via de database er een soort evenement is en die heeft bepaalde eigenschappen..

Dan hoeft de database alleen maar een nummerke te fetchen, en deze ga je verder afhandelen in php. Anders is het niet echt dynamisch lijkt me.
Ken de gehele opdracht natuurlijk niet maar zoals ik me het nu voorstel zou het meer iets zijn van een paar verschillende formulieren met verschillende soorten verplichte velden die controleer je met php. Meer is het eigenlijk niet. De database hoeft verder niet te weten of id 2 nu tekstveld verplicht is of niet.
Dat doe je met php regelen.

Je zal alleen het opslaan van die gegevens slim moeten aanpakken.
 
Herman Van der Zandt

Herman Van der Zandt

27/12/2010 21:22:04
Quote Anchor link
Wat ik nu een beetje zit te bedenken:

Een aanmaakscherm voor de beheerder( voor het toevoegen van extra velden met een bepaald type).
Dus deze gegevens zet ik in een tabel evenement_veld met daarin : evenementsoort,naamveld, soort veld, verplicht).

Dan moet ik dus bij het aanmaakscherm van evenementen een soort van FOR/WHILE loop maken die de velden dan weer ophaalt ofzo.

Iemand idee of ik zo een beetje goed denk?
 
Aad B

Aad B

27/12/2010 21:29:31
Quote Anchor link
Herman Van der Zandt op 27/12/2010 21:22:04:
Wat ik nu een beetje zit te bedenken:

Een aanmaakscherm voor de beheerder( voor het toevoegen van extra velden met een bepaald type).
Dus deze gegevens zet ik in een tabel evenement_veld met daarin : evenementsoort,naamveld, soort veld, verplicht).

Dan moet ik dus bij het aanmaakscherm van evenementen een soort van FOR/WHILE loop maken die de velden dan weer ophaalt ofzo.

Iemand idee of ik zo een beetje goed denk?
Ja, je zit in de goeie denkrichting alleen evenementsoort zet je in de evenement tabel en je neemt het id van de evenement tabel mee naar de evenement_veld tabel (als foreign key, 1 op N relatie).
 
Herman Van der Zandt

Herman Van der Zandt

28/12/2010 20:26:34
Quote Anchor link
Okeej, evenementsoort in dit geval de categorie(id). Mijn evenement tabel bestaat uit de volgende velden:

- Evenementid
- Categorieid
- Naam
- Omschrijving
- Begindatum
- Einddatum
- isAanmeldingVerplicht
- organiserendeVerenigingid
- Openbaar

Dus categorieid valt in dit geval onder het soort evenement.

De nieuwe tabel die ik heb aangemaakt heet evenement_veld, en deze bevat de volgende velden:

- categorieid
- naamveld
- soortveld
- verplicht

Categorieid omdat de velden voor een bepaald type evenementen geldt.

Maargoed, nu zit ik met het volgende. Als beheerder wil ik bijvoorbeeld 5 extra velden aanmaken voor een bepaalde soort. Zet je deze gegevens dan als een array ofzo in de database( omdat het meerdere velden zijn)?
Gewijzigd op 28/12/2010 20:27:09 door Herman Van der Zandt
 
Aad B

Aad B

28/12/2010 21:02:01
Quote Anchor link
"Zet je deze gegevens dan als een array ofzo in de database"??
Die zet je in de tabel evenement_veld en die lees je in een loopje uit.
Er ontbreekt nog wel wat in deze tabel evenement_veld:
Evenementid voor de link naar tabel evenement.
evenement_veld_id voor de volgorde.
categorieid hoort alleen in evenement denkik.

"nu zit ik met het volgende. Als beheerder wil ik bijvoorbeeld 5 extra velden aanmaken": maak je 5 records aan in evenement_veld
 
Herman Van der Zandt

Herman Van der Zandt

31/12/2010 15:32:29
Quote Anchor link
Okeej, volgens mij is het wel aardig gelukt nu. Bedankt!

Alleen nu wil ik als ik een categorie heb geselecteerd( als een vereniging een evenement wil aanmaken), dat de extra aangemaakte velden voor die categorie automatisch eronder verschijnen. Is dit mogelijk?

Ik las op internet iets met Onclick="submit()" ofzo, moet dat hierbij?

Dan nog iets; hoe haal ik meerdere gegevens uit een database met een for-loop:

$d= mysql_fetch_assoc($dynamischevelden);
$aantal = mysql_num_rows($dynamischevelden);

for($veld=1; $veld<=$aantal; $veld++){
echo '
<tr>
<td> '.$d[naamveld].'</td> <-- hier krijg je dus een aantal keer dezelfde waarde, maar hoe krijg ik daar verschillende waarden( uit de DB)?
</tr>

}

Alvast bedankt;)
Gewijzigd op 31/12/2010 19:03:12 door Herman Van der Zandt
 
Herman Van der Zandt

Herman Van der Zandt

02/01/2011 16:51:38
Quote Anchor link
Het stuk na "Dan nog iets" hoef je niet te lezen, is ondertussen opgelost;).

Heeft iemand een idee hoe ik het bovenste gedeelte van mijn vorige reactie kan aanpakken?

Alvast bedankt!
 
Pim -

Pim -

02/01/2011 17:36:03
Quote Anchor link
Of een nieuwe request, of AJAX...

Maar categorieën hebben toch geen velden? Alleen evenementen toch?
 
Herman Van der Zandt

Herman Van der Zandt

02/01/2011 17:45:53
Quote Anchor link
Okeej, dan doe ik wel gewoon een nieuwe request( van AJAX heb ik nog geen verstand:D).

In dit geval hebben categorieën( evenementsoorten) wel bepaalde velden( aangemaakt door beheerder), die dan weer worden weergegeven als een vereniging een evenement aanmaakt voor die categorie. Volgens mij is dit de bedoeling( Correct me if I'm wrong). Zal dat van de week voor de zekerheid nog even navragen.
 
Pim -

Pim -

02/01/2011 18:00:57
Quote Anchor link
Dus zowel soorten evenementen als evenementen hebben velden?
 
Herman Van der Zandt

Herman Van der Zandt

02/01/2011 19:17:42
Quote Anchor link
uhm, dat is het kort door de bocht wel( volgens mij).

Je hebt standaard velden( die voor elk evenement gelden), maar je hebt dus ook velden die afhankelijk zijn van het evenementsoort(categorie).

Dat vinden ze dynamisch. Als een vereniging een evenement aanmaakt voor bijvoorbeeld een LAN-party, dat er dan (extra) velden bijkomen die alleen voor de LAN-party gelden( dus bijvoorbeeld hoeveel computers iemand meeneemt of iets dergelijks).
En het maken van deze velden voor een evenementsoort(categorie) is dus alleen weggelegd voor een beheerder.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.