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?
In de database zet je, mijns inziens, gewoon het aantal goede antwoorden. Dus bijvoorbeeld
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%
Je formulier moet ergens naar toe gestuurd worden anders heb je er niets aan de gegevens op dat formulier dus voeg aan de form tag een action toe, dus:
<form action="enquete.php" method="post">
Maak dan dit bestand aan en begin met:
<?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
Je kunt ook alles bijelkaar in doen maar 1 bestand om het formulier te laten zien en 1 om de gegevens te verwerken vind ik mooier, beter en overzichtelijker.
Trouwens, je kunt de gebruiker weer terug sturen naar gegevens.php als er niets is verzonden, dat doe je zo:
<?php
# Er is niets verzonden
header('Location: gegevens.php');
exit;
?>
Tussen de accolades...
?
Onbekende gebruiker
20-10-2005 15:28
Jan,
Het is gelukt, denk ik. Ik heb in ieder geval geen foutmelding gehad en krijg nu de volgende tekst te zien:
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` )
);