Enquete + conclusies
Voor school ben ik bezig met een project om een enquete te ontwikkelen. Dat is natuurlijk geen probleem, maar nou is de bedoeling dat deze enquete online kan worden gezet, en dat er bepaalde conclusies worden getrokken bij elke “uitslag”.
Ik zal het proberen wat nader toe te lichten aan de hand van een klein voorbeeld:
Er zijn 9 categorien met vragen, die elk op een aparte pagina moeten worden weergegeven. Het zijn allemaal ja/nee vragen, die met een zgn. radio-button worden beantwoord (dus er kan maar 1 vraag worden aangeklikt). Als 0-25% van de antwoorden ‘ja’ is, is conclusie A van toepassing. Als 26-50% van de antwoorden ‘ja’ is, is conclusie B van toepassing. Enzovoorts.
Nou is het dus de bedoeling dat, zodra een gebruiker de laatste categorie heeft ingevuld, dat er dus conclusies op het scherm worden weergegeven van alle 9 categorien. Er moet in het begin NAW-gegevens worden ingevoerd.
Ik denk dat het ongeveer zo moet werken: Iemand vult zijn gegevens in, die worden opgeslagen in een database. Vervolgens begint hij aan de 1e categorie. Deze vragen worden ingevuld en op het eind klikt hij op ‘verder’ o.i.d. Hiermee wordt de conclusie van categorie 1 “berekend” en in de database gezet, onder de tabel 1. Hetzelfde geldt voor de 2e categorie: De vragen worden beantwoord, en op het eind wordt de conclusie in de database gezet en wordt er verder gegaan naar de volgende categorie. En zo gaat dat dus door tot dat alle 9 categorien zijn ingevuld. Dan verschijnt op de volgende pagina een overzicht met de verschillende conclusies, die worden opgehaald uit de database.
Goed, ik weet het allemaal heel goed te vertellen, maar heb niet de technische kennis om het ook te realiseren. Is er iemand die tips/suggesties heeft voor mij?
Alvast bedankt.
Vanuit daar gaan we je verder helpen en kijken of we dit project aan de praat krijgen.
Wat we niet doen is een heel script voor je opzetten!!
Suc6 en weetje geen vraag is dom of stom alleen die vraag die niet wordt gesteld omdat je bang bent of dat je denkt dat we je niet "cool" vinden omdat je wat vraagt. We vinden je juist wel "cool" wanneer je wat vraagt!!
je kunt dit proces het beste stap voor stap aanpakken. Het slimste lijkt me om met een aanmeldingsformulier te beginnen.
Heb je de beschikking over PHP en MySql?
Ik heb de beschikking over MySql en PHP, ja. Ik ben al op zoek gegaan naar een script voor de registratie, maar tot op heden heb ik nog niks gevonden. Het zijn allemal veel te ingewikkelde scripts, die allemaal met logins, profiel etc. werken. Maar ik moet dus alleen enkele velden hebben die worden ingevoerd in de database, om later te koppelen aan de resultaten van de enquete. Verder worden deze gegevens dus niet meer gebruikt in een login-pagina o.i.d.
Ik zal dus even moeten kijken of ik het zo kan wijzigen dat ik alleen datgene heb wat hiervoor nodig is.
Welke velden wil je in het eerste formulier hebben?
Naam bedrijf
Naam contactpersoon
Functie
Email adres
Telefoonnnummer
Je wilt na het invullen van een pagina de conclusie op gaan slaan. Is het niet handiger om de \'ja\' score op te slaan i.p.v. de conclusie. Op die manier kan je later ook nog gemiddelden gaan bereken. De conclusie zelf kan je altijd ook nog berekenen vanuit de \'ja\' score.
Dat zou misschien wel handiger zijn, ja. Dus, als ik het goed begrijp, komen in de database dan percentages te staan en op het einde (als alles is ingevuld), leest het scipt die percentages uit de database en zet hij deze dan om in conclusies?
dat is niet handig om in de website de percentages op te slaan, want als je 50% + 50% doet kijg je nooit 100%
TnT:
dat is niet handig om in de website de percentages op te slaan, want als je 50% + 50% doet kijg je nooit 100%
website is trouwens database, het is handiger om de antwoorden op te tellen en dat dan te delen door de vragen
TnT:
dat is niet handig om in de website de percentages op te slaan, want als je 50% + 50% doet kijg je nooit 100%
Dit snap ik niet helemaal. Volgens mij is het zo dat het percentage \'ja\' wordt berekend op het moment dat je de vragen van categorie 1 hebt ingevuld, en verder klikt om naar categorie 2 te gaan. Op dat moment wordt er een percentage/getal in de desbetreffende database gezet, en op het eind wordt dit uit de database gelezen en weergegeven in de vorm van een conclusie.
vraag1 = 10
vraag2 = 45
Als dan bij vraag 1 bijv. 50 antwoorden mogelijk zijn krijg je dit als uitslag: (uit de database)vraag1 / 50 * 100 en dat geeft dan 20% en daar bind je de conclusie aan vast. En hebben er straks b.v 10 mensen meegedaan dan tel je alles betreffende vraag 1 op uit de database (bv 130) en dan is je gemiddelde (130 (totaal) / 10 (aantal mensen)) / 50 (aantal vragen) * 100 en dat is dan 26%
maak bijvoorbeeld een pagina gegevens.php
met daarop:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// gegevensformulier
<form method="post">
<p>naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
... zo alle velden zelf maken
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
// gegevensformulier
<form method="post">
<p>naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
... zo alle velden zelf maken
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
Als je dit form zelf even verder afwerkt en online zet, dan kunnen wij kijken of het klopt ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// gegevensformulier
<form method="post">
<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p
<p>Functie:
<input id="functie" name="functie" type="text">
</p
<p>E-mailadres:
<input id="email" name="email" type="text">
</p
<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
// gegevensformulier
<form method="post">
<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p
<p>Functie:
<input id="functie" name="functie" type="text">
</p
<p>E-mailadres:
<input id="email" name="email" type="text">
</p
<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// gegevensformulier
<form method="post">
<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p>
<p>Functie:
<input id="functie" name="functie" type="text">
</p>
<p>E-mailadres:
<input id="email" name="email" type="text">
</p>
<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
// gegevensformulier
<form method="post">
<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p>
<p>Functie:
<input id="functie" name="functie" type="text">
</p>
<p>E-mailadres:
<input id="email" name="email" type="text">
</p>
<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
<form action="enquete.php" method="post">
Maak dan dit bestand aan en begin met:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
error_reporting(E_ALL); # Alle PHP errors weergeven
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Het formulier is verzonden
# Even kijken wat we allemaal hebben verstuurd
print_r($_POST);
# Verbinding maken met de database server
# Database selecteren
# Query maken
# Query uitvoeren
}
else
{
# Er is niets verzonden
}
?>
error_reporting(E_ALL); # Alle PHP errors weergeven
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Het formulier is verzonden
# Even kijken wat we allemaal hebben verstuurd
print_r($_POST);
# Verbinding maken met de database server
# Database selecteren
# Query maken
# Query uitvoeren
}
else
{
# Er is niets verzonden
}
?>
Je hebt een MySql tabel nodig. Noem hem "personen" en maak hem aan in PHP MyAdmin (als je dat hebt).
velden:
id - int - autoincrement - primairy key
naam_bedrijf - varchar 128
naam_contactpersoon - varchar 128
functie - varchar 128
email - varchar 64
telefoon - varchar 16
Gewijzigd op 20/10/2005 15:14:00 door Jan Koehoorn
Ik heb dus het bestand "gegevens.php" met daarin de volgende code:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// gegevensformulier
<form method="post">
<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p>
<p>Functie:
<input id="functie" name="functie" type="text">
</p>
<p>E-mailadres:
<input id="email" name="email" type="text">
</p>
<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
// gegevensformulier
<form method="post">
<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>
<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p>
<p>Functie:
<input id="functie" name="functie" type="text">
</p>
<p>E-mailadres:
<input id="email" name="email" type="text">
</p>
<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>
<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>
</form>
?>
Moet ik in het bestand "gegevens.php" dan de volgende code toevoegen:
Quote:
<form action="enquete.php" method="post">
En een nieuwe file aanmaken ("enquete.php") met de volgende code:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
error_reporting(E_ALL); # Alle PHP errors weergeven
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Het formulier is verzonden
# Even kijken wat we allemaal hebben verstuurd
print_r($_POST);
# Verbinding maken met de database server
# Database selecteren
# Query maken
# Query uitvoeren
}
else
{
# Er is niets verzonden
}
?>
error_reporting(E_ALL); # Alle PHP errors weergeven
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Het formulier is verzonden
# Even kijken wat we allemaal hebben verstuurd
print_r($_POST);
# Verbinding maken met de database server
# Database selecteren
# Query maken
# Query uitvoeren
}
else
{
# Er is niets verzonden
}
?>
Heb ik het zo goed begrepen of doe ik iets fout?
Trouwens, je kunt de gebruiker weer terug sturen naar gegevens.php als er niets is verzonden, dat doe je zo:
Tussen de accolades...
Gewijzigd op 20/10/2005 15:25:00 door Martijn B
Het is gelukt, denk ik. Ik heb in ieder geval geen foutmelding gehad en krijg nu de volgende tekst te zien:
Quote:
SQL-query:
CREATE TABLE `personen` (
`id` INT NOT NULL AUTO_INCREMENT ,
`naam_bedrijf` VARCHAR( 128 ) NOT NULL ,
`naam_contactpersoon` VARCHAR( 128 ) NOT NULL ,
`functie` VARCHAR( 128 ) NOT NULL ,
`email` VARCHAR( 64 ) NOT NULL ,
`telefoon` VARCHAR( 16 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
CREATE TABLE `personen` (
`id` INT NOT NULL AUTO_INCREMENT ,
`naam_bedrijf` VARCHAR( 128 ) NOT NULL ,
`naam_contactpersoon` VARCHAR( 128 ) NOT NULL ,
`functie` VARCHAR( 128 ) NOT NULL ,
`email` VARCHAR( 64 ) NOT NULL ,
`telefoon` VARCHAR( 16 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
`id` int(10) unsigned NOT NULL auto_increment,
unsigned betekend dat Mysql alleen rekening hoeft te houden met gehele getallen (dus niet negatief).