enqueteformulier: score berekenen

Status
Niet open voor verdere reacties.

jannetwiel

Gebruiker
Lid geworden
2 apr 2001
Berichten
95
Ik heb een vragenlijst gemaakt waarmee bezoekers aan onze website een aantal diagnostische vragen kunnen beantwoorden en vervolgens die gegevens kunnen inzenden (wordt dan verstuurd naar e-mail en een database). Dit werkt al keurig.

Voor de beeldvorming, is hier de vragenlijst:
http://www.noag.nl/peno/quickscan/vragenlijst-1.htm

Nu wil ik echter een tussenstap inbouwen, en wel dat de bezoekers, nadat ze het eerste deel van de vragenlijst hebben ingevuld, hun score kunnen berekenen. (Zie knop 'bereken uw score' na vraag 21).

Ik heb het idee dat dat wel in Javascript moet kunnen, maar aangezien ik een behoorlijke newbie ben, heb ik geen flauw idee hoe ik dat moet aanpakken. Het is bovendien best een ingewikkelde vragenlijst, waarbij het antwoord op een van de vragen gevolgen heeft voor de score op de andere vragen.

Het liefst zou ik willen dat de antwoorden naar een nieuwe pagina in een nieuw venster worden gebracht, waar de berekeningen worden uitgevoerd en de scores worden weergegeven, eventueel met een waardering erbij. Nadat de gebruikers hun score hebben bekeken, moeten ze het scorevenster weer kunnen sluiten, zodat ze terugkeren naar de vragenlijst en die verder invullen en toesturen. De gegevens van het eerste deel van de vragenlijst moeten dus blijven staan.

Kan dit zo, of is het beter om de vragenlijst in twee stukken te knippen (dus: eerst diagnostische vragen invullen -> berekening in nieuw scherm -> rest van de vragen in nieuw scherm laten invullen -> alle gegevens (incl. resultaten van 1e vragenlijst) vanuit scherm 2 laten versturen).

Het liefste zou ik de berekening overigens op de server laten uitvoeren, zodat deze niet openbaar is, maar dat lijkt me een mooi vervolg voor als het in Javascript allemaal goed werkt. Mocht dit niet zo ingewikkeld zijn als ik denk, dan noor ik dat natuurlijk ook graag.

Kortom... wie helpt deze newbie op weg? Hoe pak ik dit aan? Zijn er kant-en-klare javascriptjes die hierbij kunnen helpen? Handleidingen? Ik heb al op diverse sites gekeken, maar niet gevonden wat ik zocht. Misschien staat het er wel, maar dan herken ik het (nog) niet.

Alvast bedankt!


Jannet
 
Indien je de berekening niet openbaar wilt maken, zul dit inderdaad op de server m.b.v. php of zo iets uit kunnen voeren. Hier kun je dan ook regelen dat `n nieuw venster met resultaten e.d. wordt weergegeven.
Aangezien de berekening zeer goed gebruikt kan worden door andere bedrijven, raad ik je aan dit vanaf het begin vooral niet te doen in javascript. `n Beetje kenner kan zo je berekeningen ondervangen en voor ander gebruik beschikbaar maken.
 
Schematisch ziet het er zo uit:

- De gebruiker druk op 'Bereken Uw score'-button in formulier 1.
- Hierna wordt score.php uitgevoerd dat je als action in het form hebt aangegeven met method 'post'.
- score1.php berekent de score en slaat deze op in de sessie-variable var_score1.
- Genereer `n window met de score en verstuur deze.
- Nadat de gebruiker dit scherm heeft gesloten via de 'Sluit'-button, wordt het volgende formulier getoond.
- Gebruiker vult formulier 2 en drukt weer op de button 'Bereken Uw score'.
- Hierna wordt score2.php uitgevoerd.
- score2.php haalt de waarde van de sessie-variabele var_score1 op en berekent aan de hand hiervan de volgende score.
- Sla de tweede score op als sessie-variabele var_score2.
- Deze reeks kun je herhalen vanaf "- Genereer `n window...." totdat alle formulieren zijn verwerkt.
- Vervolgens toon je het laatste gedeelte van je formulier (naw-gedeelte). Dit heb je al goed werkend.

Ik hoop dat je hiermee `n eind op weg bent geholpen.

Mochten er nog vragen zijn, dan kun je mij `n bericht sturen.
 
Hoi Silkcom,


Dank voor je reactie. Moet ik toch maar eens met php aan de slag. Heb je een tip waar ik goeie handleidingen over php kan vinden?

Kun je op de door jouw beschreven manier de eerste 21 vragen op 1 formulier versturen, en vervolgens in een keer de score berekenen?

En een tweede vraag: heb je voor zo'n programma een database, zoals bv. Mysql op de server nodig, of kan je gewoon zelf een databestandje aanmaken?


Groet, J.
 
Zelf heb ik bij V en D het boek Programmeren in PHP 4.1 van Peter Kassenaar gekocht. Dit geeft je de grondbeginselen van PHP. Zelf heb ik reeds 18 jaar programmeer ervaring op grotere systemen en verschillende talen.

Je kunt via deze manier inderdaad alle 21 vragen in een keer doorsturen en het op de server laten berekenen. Daarna kun je de score tonen.

Je kunt de antwoorden in een apart tekstbestand opslaan per gebruiker. Maar het beste is natuurlijk de resultaten op te slaan in een MySql-database. Dit is vooral handig om later statistieken te berekeken.

Als ik wat meer tijd heb, zal ik proberen een voorbeeld te maken.
 
Weer bedankt voor je bijdrage. Ik zal dat boek gaan halen. En ik ga voorlopig voor het opslaan als tekstbestand, want lees het vervolgens toch lokaal in in Excel.

En ik hou me natuurlijk zeer aanbevolen als je eraant toekomt om een voorbeeldje te fabrieken. Maar voorlopig kan ik weer verder. Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan