testformulier - score optellen
bij deze mijn eerste post. Ik ben een enorme noob op t gebied van php en het script waar ik hulp om ga vragen heb ik ook gebaseerd op een simpel mailform dat ik ooit gedownload heb.
Ik ben op het moment bezig met een Testformulier en wil hier graag van de score's opgeteld hebben. Ik heb eerst een test met 2 vragen gedaan voordat ik de hele test ging uitwerken en deze werkte. toen ik echter 11 onderwerpen met elk 3 vragen op ging bouwen ging het mis. Hij telt alleen de eerste 3 vragen op.
De website die opgeteld moet worden (en waar jullie de code dus van kunnen bekijken is www.amusant-animatie.nl/CMI/vragenlijst.html
Het php script wat ik heb geschreven voor de berekening (heb gehoord dat ik hier better een array voor kan gebruiken maar zoals ik al zei, ik ben een noob) is het volgende:
Quote:
<html>
<body>
</body>
</html>
<body>
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
$sc011= $_POST['011'];
$sc012= $_POST['012'];
$sc013= $_POST['013'];
$sc01= $sc011 + $sc012 + $sc013;
$sc021= $_POST['021'];
$sc022= $_POST['022'];
$sc023= $_POST['023'];
$sc02= $sc021 + $sc022 + $sc023;
$sc031= $_POST['031'];
$sc032= $_POST['032'];
$sc033= $_POST['033'];
$sc03= $sc031 + $sc032 + $sc033;
$sc041= $_POST['041'];
$sc042= $_POST['042'];
$sc043= $_POST['043'];
$sc04= $sc041 + $sc042 + $sc043;
$sc051= $_POST['051'];
$sc052= $_POST['052'];
$sc053= $_POST['053'];
$sc05= $sc051 + $sc052 + $sc053;
$sc061= $_POST['061'];
$sc062= $_POST['062'];
$sc063= $_POST['063'];
$sc06= $sc061 + $sc062 + $sc063;
$sc071= $_POST['071'];
$sc072= $_POST['072'];
$sc073= $_POST['073'];
$sc07= $sc071 + $sc072 + $sc073;
$sc081= $_POST['081'];
$sc082= $_POST['082'];
$sc083= $_POST['083'];
$sc08= $sc081 + $sc082 + $sc083;
$sc091= $_POST['091'];
$sc092= $_POST['092'];
$sc093= $_POST['093'];
$sc09= $sc091 + $sc092 + $sc093;
$sc101= $_POST['101'];
$sc102= $_POST['102'];
$sc103= $_POST['103'];
$sc10= $sc101 + $sc102 + $sc103;
$sc111= $_POST['111'];
$sc112= $_POST['112'];
$sc113= $_POST['113'];
$sc11= $sc111 + $sc112 + $sc113;
$scTotaal= $sc01 + $sc02 + $sc03 + $sc04 + $sc05 + $sc06 + $sc07 + $sc08 + $sc09 + $sc10 + $sc11;
echo "uw uitslag is " . $scTotaal . "geworden";
?>
$sc011= $_POST['011'];
$sc012= $_POST['012'];
$sc013= $_POST['013'];
$sc01= $sc011 + $sc012 + $sc013;
$sc021= $_POST['021'];
$sc022= $_POST['022'];
$sc023= $_POST['023'];
$sc02= $sc021 + $sc022 + $sc023;
$sc031= $_POST['031'];
$sc032= $_POST['032'];
$sc033= $_POST['033'];
$sc03= $sc031 + $sc032 + $sc033;
$sc041= $_POST['041'];
$sc042= $_POST['042'];
$sc043= $_POST['043'];
$sc04= $sc041 + $sc042 + $sc043;
$sc051= $_POST['051'];
$sc052= $_POST['052'];
$sc053= $_POST['053'];
$sc05= $sc051 + $sc052 + $sc053;
$sc061= $_POST['061'];
$sc062= $_POST['062'];
$sc063= $_POST['063'];
$sc06= $sc061 + $sc062 + $sc063;
$sc071= $_POST['071'];
$sc072= $_POST['072'];
$sc073= $_POST['073'];
$sc07= $sc071 + $sc072 + $sc073;
$sc081= $_POST['081'];
$sc082= $_POST['082'];
$sc083= $_POST['083'];
$sc08= $sc081 + $sc082 + $sc083;
$sc091= $_POST['091'];
$sc092= $_POST['092'];
$sc093= $_POST['093'];
$sc09= $sc091 + $sc092 + $sc093;
$sc101= $_POST['101'];
$sc102= $_POST['102'];
$sc103= $_POST['103'];
$sc10= $sc101 + $sc102 + $sc103;
$sc111= $_POST['111'];
$sc112= $_POST['112'];
$sc113= $_POST['113'];
$sc11= $sc111 + $sc112 + $sc113;
$scTotaal= $sc01 + $sc02 + $sc03 + $sc04 + $sc05 + $sc06 + $sc07 + $sc08 + $sc09 + $sc10 + $sc11;
echo "uw uitslag is " . $scTotaal . "geworden";
?>
</body>
</html>
Hierbij ben ik me ervan bewust dat de html niet strict is maar het gaat me hier puur even om dat het script werkt.
Kunnen jullie mij uitleggen waarom het script niet werkt. Heb ik liever dan een gefixed script zelfs want dan leer ik er weer van.
Alvast Bedankt,
Groeten Gijs
tip: ga eerst eens de basis leren van php
$scTotaal= '$sc01 + $sc02 + $sc03 + $sc04 + $sc05 + $sc06 + $sc07 + $sc08 + $sc09 + $sc10 + $sc11';
Kijk eens naar de namen van de radiobuttons in je html-formulier en vergelijk die met die in je php-script ($_POST).
Wout van der Burg op 11/11/2010 15:38:33:
Krijg je ook foutmeldingen? Zo ja, welke?
@jordi; aldoende leert men ook ;)
@jordi; aldoende leert men ook ;)
klopt maar als wij dadelijk iets doen en uitleggen weet hij niet wat wij bedoelen vandaar :)
@Jordy ga ik ook zeker doen, in het volgende semester krijg ik het op school. Ik doe dit om een vriend te helpen en die wil het graag op korte termijn. sorry dat ik nu even stomme vragen stel. Hoop snel met een uitdaging voor je te komen ;).
@Wout Het formulier staat onder de link die ik heb bijgevoegd:
www.amusant-animatie.nl/vragenlijst.html (de broncode kun je zo bekijken)
krijg verder geen foutmeldingen maar ik zou zo ook niet weten waar ik die zou moeten krijg :s
Alvast Bedankt!
Jordi kroon op 11/11/2010 15:39:40:
probeer dit eens
$scTotaal= '$sc01 + $sc02 + $sc03 + $sc04 + $sc05 + $sc06 + $sc07 + $sc08 + $sc09 + $sc10 + $sc11';
$scTotaal= '$sc01 + $sc02 + $sc03 + $sc04 + $sc05 + $sc06 + $sc07 + $sc08 + $sc09 + $sc10 + $sc11';
Waarom variabelen tussen quotes zetten??
Zet berekeningen altijd tussen haakjes trouwens!
alle variabelen effe echo'en kijken wat er fout gaat
Zet eens bovenaan je uitkomst.php;
print_r($_POST);
die();
Wat komt er dan uit?
Gewijzigd op 11/11/2010 15:44:15 door Wout van der Burg
Heb nu de berekeningen tussen haakjes, de print_r enz. toegevoegd bovenin het phpscript en de error report erbij gezet.
nu geeft hij dit terug:
Array ( [011] => 1 [012] => 4 [013] => 5 [02_1] => 4 [02_2] => 4 [02_3] => 5 [03_1] => 5 [03_2] => 2 [03_3] => 1 [04_1] => 5 [04_2] => 4 [04_3] => 3 )
enig idee?
Houdt de naam van de $_POST-var en je veldnaam altijd hetzelfde. Anders kun je deze niet aanspreken.
Toevoeging op 11/11/2010 15:52:42:
Variabelen horen nooit tussen quotes.
Ok je POST-vars worden dus weergegeven.
Haal nu eens de print_r(); en de die(); weg?
maar nog steeds is mijn output:
Array ( [011] => 1 [012] => 4 [013] => 5 [02_1] => 4 [02_2] => 4 [02_3] => 5 [03_1] => 5 [03_2] => 2 [03_3] => 1 [04_1] => 5 [04_2] => 4 [04_3] => 3 )
Als je die regels weghaalt, dan is die array ook weer weg.
superbedankt allemaal.
even voor mijn leerweg, die print_r(); en de die(); --> wat geven deze precies voor een output?
en dezelfde vraag voor het volgende stukje code dat ik van jullie kreeg:
Moet ik dit laatste stukje code laten staan?
Het lag dus waarschijnlijk gewoon aan dat ik geen haakjes om de berekening had?
Heel blij in ieder geval, ook namens degene voor wie ik het maak.
Groeten Gijs
Best is om ze in je form weg te halen om het eenduidig te maken.
Let op er zit dan totaal geen fout afhandeling in, Maaarja dat heb je nu ook niet. En de mensen kloten alleen hunzelf als ze gaan rommelen.
Gewijzigd op 11/11/2010 16:09:26 door - Mark -
De servervariabelen $_POST en $_GET worden automatisch in een array gezet.
Wat is het verschil tussen variabelen en arrays? Zoek dat even op!
die(); zorgt ervoor dat je script stopt en de output geeft tot op dat moment.
Dat laatste stukje code kun je gebruiken om foutcodes te laten genereren. Onthoud dit dus goed, om foutcodes te kunnen lezen. Van deze foutcodes kun je veel leren en het kan voorkomen dat je 'stomme vragen' stelt, al bestaan die niet.
Ik zag alleen dat je niet controleerd of een formulier ook echt is verzonden. Je krijgt dan zo iets.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Tevens is het copieren van all die vars onzin. Allemaal nergens voor nodig.
Gewijzigd op 11/11/2010 16:21:31 door - Mark -