controle op formulier?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Inge V

Inge V

14/06/2012 09:35:41
Quote Anchor link
Ik wil dat er op onderstaand script van 1 vraag, maar 1 antwoord gekozen kan worden. Nu kan je ze allemaal aanklikken. Ook wil ik een controle dat ook echt iedere vraag is beantwoord. Wanneer een vraag niet is beantwoord dat je dan een foutmelding krijgt.

Ik heb echt geen idee hoe ik dit moet aanpakken. Ik heb al verschillende voorbeelden op internet gezocht met controle, maar mijn script zit heel anders in elkaar en dan kan ik niet goed vinden hoe ik dit moet oplossen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
session_start();
include ("include/header.php");
include ("include/config.php");
?>



<html>
    <head>
        <title>Enquete</title>
        <link rel="stylesheet" type="text/css" href="include/style.css" />
    </head>
    <body>

    <form action="" method="POST">
    <table>
    <?php

// haal vraag id's op
//hoeveel vragen staan er in de db?

$resultvraagids = mysql_query("SELECT vraagID, vraag FROM vragen");
//$totaalaantalvragen = mysql_num_rows($resultvraagids);
$i = 0;
while ($rij = mysql_fetch_assoc($resultvraagids))
{

    //query om de vragen op te halen en deze beneden erbij te zetten
    $resultvragen = mysql_query("SELECT vraagID, vraag FROM vragen WHERE vraagID =" . $rij["vraagID"]);
    //query om te kijken voor elke vraag welke antwoorden erbij horen
    $resultantwoorden = mysql_query("SELECT antwoord FROM antwoorden WHERE vraagID =" .
        $rij["vraagID"]);
    //vragen loop
    while ($rij1 = mysql_fetch_assoc($resultvragen))
    {

        echo '<tr>
                        <td><b>'
. $rij1["vraagID"] . '.&nbsp;' . $rij1["vraag"] . '</b></td>
                     </tr>
                     <tr><td></td></tr>'
;
    }

    //antwoorden loop
    while ($rij2 = mysql_fetch_assoc($resultantwoorden))
    {

        $i++;
        echo '<tr>
                <td><input type="radio" name="antwoord'
. $i . '"/>' . $rij2["antwoord"] .
            '</td>
                </tr>'
;
                
        
        //kijk voor elk antwoord of het antwoord is aangeklikt
        if (isset($_POST['antwoord' . $i]))
        {

            $antwoord = 'antwoord';
            ${$antwoord . $i} = 1;
        }
else
        {
            ${$antwoord . $i} = 0;
        }
    }

    echo '<tr><td></td></tr>';
}


?>
    

        <tr>
            <td></td>
            <td><input type="submit" value="stoppen" name="submit"/></td>
        </tr>
        
<?php

if (isset($_POST['submit']))
{

    //datum van vandaag
    $datum = date("Y-m-d");
    $keuzeID = mysql_insert_id();
    
    //resultaat invoeren
    $query = mysql_query("INSERT INTO resultaten (resultaatID, keuzeID, datum, 1A, 1B, 1C, 1D, 2A, 2B, 2C, 2D,)
        VALUES ('','$keuzeID','$datum','$antwoord1','$antwoord2','$antwoord3','$antwoord4','$antwoord5','$antwoord6','$antwoord7','$antwoord8')"
)
        
        or die(mysql_error());

    echo ("Bedankt voor het invullen van de Enquete. <br><br><br><br><br><br><br>");
}

    
?>
    
    </table>
</form>    

    </body>
</html>
 
PHP hulp

PHP hulp

15/11/2024 12:47:04
 
Bart V B

Bart V B

14/06/2012 09:44:57
Quote Anchor link
Je hele opbouw is verkeerd.
Hoeveel vragen zijn er? In het topic wat nog geen 10 minuten oud is geef ik aan waar mysql_insert_id() moet staan, en dat je je variabelen buiten quotes moet zetten.
Ook controleer je nooit of er een knop word ingedrukt maar of de server een aanvraag krijgt om te posten.. Dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

if($_SERVER['REQUEST_MEHTOD'] == 'POST)
{


  // controleren of alles klopt

  // inserten

  // insert_id() opvragen..


}
?>


en dan hier het formulier..
Dus niet ergens in het midden van je script.
Gewijzigd op 14/06/2012 09:45:54 door Bart V B
 
Reshad F

Reshad F

14/06/2012 09:51:55
Quote Anchor link
Inge laat me je een goed advies geven en stop dit scriptje in de prullenbak want je mist behoorlijk wat dingen.

- SQL injection
- Foutafhandeling
- Controle
- en zoals Bart al zegt je hele opbouw is verkeerdd..

en sterker nog volgens mij is ook je database ontwerp niet helemaal goed. maar dat terzijde.
Gewijzigd op 14/06/2012 09:52:32 door Reshad F
 
Erwin H

Erwin H

14/06/2012 09:53:40
Quote Anchor link
En het antwoord op de vraag: als je de radiobuttons die bij dezelfde vraag horen ook dezelfde naam geeft, dan horen ze bij elkaar en kan je er nog maar 1 aanklikken. Via de value attribute kan je iedere een andere value geven en die waarde komt in je post array terecht waardoor het uitlezen ook nog eens super simpel is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<input type="radio" name="test" value="1">
<input type="radio" name="test" value="2">
<input type="radio" name="test" value="3">

Als de derde nu is aangeklikt dan krijg je in de post $_POST['test'] = 3
 
Inge V

Inge V

14/06/2012 10:23:51
Quote Anchor link
@ Bart
Ik heb mijn script nu veranderd. Maar nu wordt er helemaal niks weggeschreven naar mijn tabel.


Erwin H op 14/06/2012 09:53:40:
En het antwoord op de vraag: als je de radiobuttons die bij dezelfde vraag horen ook dezelfde naam geeft, dan horen ze bij elkaar en kan je er nog maar 1 aanklikken. Via de value attribute kan je iedere een andere value geven en die waarde komt in je post array terecht waardoor het uitlezen ook nog eens super simpel is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<input type="radio" name="test" value="1">
<input type="radio" name="test" value="2">
<input type="radio" name="test" value="3">

Als de derde nu is aangeklikt dan krijg je in de post $_POST['test'] = 3



Ik kan niet dezelfde naam geven van de antwoorden die bij dezelfde vraag horen, want nu geeft ie ze automatisch de naam antwoord1, antwoord2, antwoord3 enz.. en hierdoor komt er een 1 in de tabel te staan waar de radiobutton van is aangeklikt. Wanneer ik daar i.p.v. name="antwoord' . $i . '" name="antwoord" zou noemen, dan kan ik niks meer wegschrijven in mijn tabel en dan kan je maar 1 antwoord kiezen uit alle antwoorden bij alle vragen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
session_start();
include ("include/header.php");
include ("include/config.php");

if($_SERVER['REQUEST_MEHTOD'] == 'POST')
{


  // controleren of alles klopt

  // inserten
    //datum van vandaag

    $datum = date("Y-m-d");
    
    //resultaat invoeren
    $query = mysql_query("INSERT INTO resultaten (resultaatID, keuzeID, datum, 1A, 1B, 1C, 1D, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, 4A, 4B, 4C, 4D, 5A, 5B, 5C, 5D, 6A, 6B, 6C, 6D, 7A, 7B, 7C, 7D, 8A, 8B, 8C, 8D, 9A, 9B, 9C, 9D, 10A, 10B, 10C, 10D, 11A, 11B, 11C, 11D, 12A, 12B, 12C, 12D, 13A, 13B, 13C, 13D, 14A, 14B, 14C, 14D, 15A, 15B, 15C, 15D)
        VALUES ('','$keuzeID','$datum','$antwoord1','$antwoord2','$antwoord3','$antwoord4','$antwoord5','$antwoord6','$antwoord7','$antwoord8','$antwoord9','$antwoord10','$antwoord11','$antwoord12','$antwoord13','$antwoord14','$antwoord15','$antwoord16','$antwoord17','$antwoord18','$antwoord19','$antwoord20','$antwoord21','$antwoord22','$antwoord23','$antwoord24','$antwoord25','$antwoord26','$antwoord27','$antwoord28','$antwoord29','$antwoord30','$antwoord31','$antwoord32','$antwoord33','$antwoord34','$antwoord35','$antwoord36','$antwoord37','$antwoord38','$antwoord39','$antwoord40','$antwoord41','$antwoord42','$antwoord43','$antwoord44','$antwoord45','$antwoord46','$antwoord47','$antwoord48','$antwoord49','$antwoord50','$antwoord51','$antwoord52','$antwoord53','$antwoord54','$antwoord55','$antwoord56','$antwoord57','$antwoord58','$antwoord59','$antwoord60')"
)
        or die(mysql_error());
        
}


?>

 
 
<form action="" method="POST">
    <table>
    <?php

// haal vraag id's op
//hoeveel vragen staan er in de db?

$resultvraagids = mysql_query("SELECT vraagID, vraag FROM vragen");
//$totaalaantalvragen = mysql_num_rows($resultvraagids);
$i = 0;
while ($rij = mysql_fetch_assoc($resultvraagids))
{

    //query om de vragen op te halen en deze beneden erbij te zetten
    $resultvragen = mysql_query("SELECT vraagID, vraag FROM vragen WHERE vraagID =" . $rij["vraagID"]);
    //query om te kijken voor elke vraag welke antwoorden erbij horen
    $resultantwoorden = mysql_query("SELECT antwoord FROM antwoorden WHERE vraagID =" .
        $rij["vraagID"]);
    //vragen loop
    while ($rij1 = mysql_fetch_assoc($resultvragen))
    {

        echo '<tr>
                        <td><b>'
. $rij1["vraagID"] . '.&nbsp;' . $rij1["vraag"] . '</b></td>
                     </tr>
                     <tr><td></td></tr>'
;
    }

    //antwoorden loop
    while ($rij2 = mysql_fetch_assoc($resultantwoorden))
    {

        $i++;
        echo '<tr>
                <td><input type="radio" name="antwoord'
. $i . '" value="'.$i.'"/>' . $rij2["antwoord"] .
            '</td>
                </tr>'
;
        //kijk voor elk antwoord of het antwoord is aangeklikt
        if (isset($_POST['antwoord' . $i]))
        {

            $antwoord = 'antwoord';
            ${$antwoord . $i} = 1;
        }
else
        {
            ${$antwoord . $i} = 0;
        }
    }

    echo '<tr><td></td></tr>';
}


?>
    

        <tr>
            <td></td>
            <td><input type="submit" value="stoppen" name="submit"/></td>
        </tr>
    </table>
</form>






Toevoeging op 14/06/2012 10:28:26:

Mijn broncode komt er zo uit: Ik heb 15 vragen met elk 4 antwoorden. Kan iemand mij anders helpen met heel het script hoe ik dit makkelijk en goed uit de database kan halen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
<html>
    <head>
        <title></title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
<table style="width:100%;">
    <tr>
        <td><h2>Docenten Enqute</h2></td>
        <td><img src="/images/lcl.jpg" style="float:right; width:100px;" /></td>
    </tr>
</table>

    </body>
</html>

<html>
    <head>
        <title>Enquete</title>
        <link rel="stylesheet" type="text/css" href="include/style.css" />
    </head>
    <body>

    <form action="" method="POST">
    <table>
    <tr>
                        <td><b>1.&nbsp;Hoe gemakkelijk voel je je bij deze docent?</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord1" value="1"/>A. Ik voel me altijd op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord2" value="2"/>B. Ik voel me meestal op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord3" value="3"/>C. Ik voel me soms niet op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord4" value="4"/>D. Ik voel me meestal niet op mijn gemak bij deze docent.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>2.&nbsp;Werken in de les.</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord5" value="5"/>A. Bij deze docent ben ik in de les altijd hard aan het werk.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord6" value="6"/>B. Bij deze docent ben ik in de les vaak goed aan het werk.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord7" value="7"/>C. Bij deze docent doe ik meestal niet zoveel in de les.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord8" value="8"/>D. Bij deze docent doe ik meestal niets in de les.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>3.&nbsp;Orde in de klas.</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord9" value="9"/>A. Deze docent houdt altijd goed orde in de klas.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord10" value="10"/>B. Deze docent kan meestal wel orde houden in de klas.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord11" value="11"/>C. Deze docent heeft vaak moeite om orde in de klas te houden.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord12" value="12"/>D. Deze docent kan geen orde houden.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>4.&nbsp;Hoe boeiend is de les?</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord13" value="13"/>A. Bij deze docent zijn de lessen altijd boeiend en vliegt de tijd voorbij.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord14" value="14"/>B. Bij deze docent zijn de lessen vaak boeiend.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord15" value="15"/>C. Bij deze docent zijn de lessen vaker saai dan boeiend.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord16" value="16"/>D. Bij deze docent zijn de lessen altijd saai.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>5.&nbsp;Taalgebruik ten opzichte van leerlingen.</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord17" value="17"/>A. Deze docent spreekt altijd beheerst en netjes tegen de leerlingen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord18" value="18"/>B. Deze docent spreekt meestal beheerst en netjes tegen de leerlingen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord19" value="19"/>C. Deze docent verliest wel eens zijn geduld en drukt zich dan hard uit tegen leerlingen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord20" value="20"/>D. Deze docent gebruikt regelmatig grove taal in de klas en scheldt leerlingen uit.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>6.&nbsp;Planning van de les.</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord21" value="21"/>A. Deze docent geeft altijd duidelijk aan wat je tijdens de les moet doen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord22" value="22"/>B. Deze docent geeft meestal aan wat je tijdens de les moet doen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord23" value="23"/>C. Deze docent geeft weinig aan wat je tijdens de les moet doen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord24" value="24"/>D. Deze docent geeft nooit aan wat je tijdens de les moet doen.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>7.&nbsp;Uitleg</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord25" value="25"/>A. Deze docent legt altijd erg goed uit.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord26" value="26"/>Deze docent legt veel onderwerpen goed uit.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord27" value="27"/>C. Deze docent kan niet zo goed uitleggen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord28" value="28"/>D. De uitleg van deze docent is meestal niet te begrijpen.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>8.&nbsp;Controle op huiswerk.</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord29" value="29"/>A. Deze docent controleert altijd je huiswerk.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord30" value="30"/>B. Deze docent controleert je huiswerk regelmatig.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord31" value="31"/>C. Deze docent controleert slechts af en toe je huiswerk.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord32" value="32"/>D. Deze docent controleert nooit je huiswerk.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>9.&nbsp;Cijfers geven.</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord33" value="33"/>A. Het is bij deze docent altijd duidelijk waarom ik een bepaald cijfer heb gekregen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord34" value="34"/>B. Het is bij deze docent vaak wel duidelijk waarom ik een bepaald cijfer heb gekregen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord35" value="35"/>C. Het is bij deze docent vaak onduidelijk hoe mijn cijfer tot stand is gekomen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord36" value="36"/>D. Het is bij deze docent nooit duidelijk hoe mijn cijfer tot stand is gekomen.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>10.&nbsp;Hoe gaat deze docent met je om?</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord37" value="37"/>A. Deze docent behandelt iedere leerling hetzelfde.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord38" value="38"/>B. Deze docent behandelt de meeste leerlingen hetzelfde.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord39" value="39"/>C. Deze docent trekt soms enkele leerlingen een beetje voor.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord40" value="40"/>D. Deze docent trekt duidelijk sommige leerlingen voor.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>11.&nbsp;Hulp bij het leren.</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord41" value="41"/>A. Deze docent legt uit hoe je zijn vak het beste onder de knie kunt krijgen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord42" value="42"/>B. Deze docent geeft regelmatig tips hoe je het beste kunt leren.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord43" value="43"/>C. Deze docent geeft slechts af en toe een tip hoe je het beste kunt leren.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord44" value="44"/>D. Deze docent vindt dat je zelf moet uitzoeken hoe je het beste leert.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>12.&nbsp;Ziet de docent het als je moeite hebt met zijn vak?</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord45" value="45"/>A. Deze docent signaleert het snel als je moeite hebt met zijn vak en gaat je dan actief helpen.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord46" value="46"/>B. Deze docent signaleert het als je moeite hebt met zijn vak en spreekt daar met je over.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord47" value="47"/>C. Deze docent spreekt alleen met je als je een zware onvoldoende hebt gehaald.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord48" value="48"/>D. Deze docent vindt dat je zelf je problemen met zijn vak moet oplossen.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>13.&nbsp;Wat leer ik tijdens de les?</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord49" value="49"/>A. Ik leer veel tijdens de lessen van deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord50" value="50"/>B. Ik leer vrij veel tijdens de lessen van deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord51" value="51"/>C. Ik leer niet zo veel tijdens de lessen van deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord52" value="52"/>D. Ik leer weinig tijdens de lessen van deze docent.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>14.&nbsp;Wil je volgend jaar les van deze docent?</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord53" value="53"/>A. Ja, heel graag, bij deze docent leer ik het meeste voor dit vak.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord54" value="54"/>B. Prima, een andere docent is ook goed.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord55" value="55"/>C. Liever niet.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord56" value="56"/>D. Zeker niet.</td>
                </tr><tr><td></td></tr><tr>
                        <td><b>15.&nbsp;Hoe zou je deze docent over het totaal beoordelen?</b></td>
                     </tr>
                     <tr><td></td></tr><tr>
                <td><input type="radio" name="antwoord57" value="57"/>A. Zeer goed</td>
                </tr><tr>
                <td><input type="radio" name="antwoord58" value="58"/>B. Goed</td>
                </tr><tr>
                <td><input type="radio" name="antwoord59" value="59"/>C. Voldoende</td>
                </tr><tr>
                <td><input type="radio" name="antwoord60" value="60"/>D. Onvoldoende</td>
                </tr><tr><td></td></tr>    

        <tr>
            <td></td>
            <td><input type="submit" value="stoppen" name="submit"/></td>
        </tr>
        
    
    </table>
</form>    

    </body>
</html>

<html>
    <head>
        <title></title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
<p class="footer"> copyright  Inge verhagen, 2012 </p>
    </body>
</html>
Gewijzigd op 14/06/2012 10:26:15 door Inge V
 
Bart V B

Bart V B

14/06/2012 10:41:44
Quote Anchor link
Inge,

Dit word hem niet. Erwin gaf net al terecht aan dat per vraag de name per vraag het zelfde moet zijn. En dat is nu niet het geval.

Even een stukje html wat het moet worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<td><input type="radio" name="antwoord1" value="1"/>A. Ik voel me altijd op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord1" value="2"/>B. Ik voel me meestal op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord1" value="3"/>C. Ik voel me soms niet op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord1" value="4"/>D. Ik voel me meestal niet op mijn gemak bij deze docent.</td>
                </tr><tr><td></td></tr><tr>
 
Erwin H

Erwin H

14/06/2012 10:50:22
Quote Anchor link
Inge V op 14/06/2012 10:23:51:
dan kan ik niks meer wegschrijven in mijn tabel en dan kan je maar 1 antwoord kiezen uit alle antwoorden bij alle vragen.

Nee, niet ALLE radio buttons dezelfde naam. Alle radiobuttons PER VRAAG. En als je het slim aanpakt kan je dan per vraag direct het gegeven antwoord uit je post halen, zonder dat je moeilijk hoeft gaan lopen doen met allerlei loopjes om te kijken welke geantwoord is.
 
Inge V

Inge V

14/06/2012 11:07:23
Quote Anchor link
Bart V B op 14/06/2012 10:41:44:
Inge,

Dit word hem niet. Erwin gaf net al terecht aan dat per vraag de name per vraag het zelfde moet zijn. En dat is nu niet het geval.

Even een stukje html wat het moet worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<td><input type="radio" name="antwoord1" value="1"/>A. Ik voel me altijd op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord1" value="2"/>B. Ik voel me meestal op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord1" value="3"/>C. Ik voel me soms niet op mijn gemak bij deze docent.</td>
                </tr><tr>
                <td><input type="radio" name="antwoord1" value="4"/>D. Ik voel me meestal niet op mijn gemak bij deze docent.</td>
                </tr><tr><td></td></tr><tr>


Ik snap nu inmiddels dat het zo moet worden, maar ik heb echt geen flauw idee meer hoe ik dat in 1 of een paar regels kan oplossen, waarbij ik dus mijn vragen en antwoorden nog uit de database kan halen, zonder dat ik handmatig een hele lange lijst HTML dingen moet gaan schrijven. En ook geen idee hoe ik dan nog ervoor kan zorgen dat het gekozen radiobutton een 1 wordt weggschreven onder de juiste kolom.

Kunnen jullie misschien een opbouw voor mijn script maken hoe die wel moet? en de goeie dingen uit de database haalt en kan wegschrijven?

Mijn tabellen die ik gebruik:
vragen:
vraagID, vraag
1, vraag1
2, vraag2

antwoorden:
antwoordID, vraagID, antwoord
1, 1, A....
2, 1, B..
3, 1, C
4, 1, D
5, 2, A..

resultaten:
resultaatID, keuzeID, 1A, 1B, 1C, 1D, 2A...
1, 1, 1, 0, 0, 0, 0...
2, 3, 1, 0, 0, 0, 1...

Mijn gehele (foute) code tot nu toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
session_start();
include ("include/header.php");
include ("include/config.php");
?>



<html>
    <head>
        <title>Enquete</title>
        <link rel="stylesheet" type="text/css" href="include/style.css" />
    </head>
    <body>

    <form action="" method="POST">
    <table>
    <?php

// haal vraag id's op
//hoeveel vragen staan er in de db?

$resultvraagids = mysql_query("SELECT vraagID, vraag FROM vragen");
//$totaalaantalvragen = mysql_num_rows($resultvraagids);
$i = 0;
while ($rij = mysql_fetch_assoc($resultvraagids))
{

    //query om de vragen op te halen en deze beneden erbij te zetten
    $resultvragen = mysql_query("SELECT vraagID, vraag FROM vragen WHERE vraagID =" . $rij["vraagID"]);
    //query om te kijken voor elke vraag welke antwoorden erbij horen
    $resultantwoorden = mysql_query("SELECT antwoord FROM antwoorden WHERE vraagID =" .
        $rij["vraagID"]);
    //vragen loop
    while ($rij1 = mysql_fetch_assoc($resultvragen))
    {

        echo '<tr>
                        <td><b>'
. $rij1["vraagID"] . '.&nbsp;' . $rij1["vraag"] . '</b></td>
                     </tr>
                     <tr><td></td></tr>'
;
    }

    //antwoorden loop
    while ($rij2 = mysql_fetch_assoc($resultantwoorden))
    {

        $i++;
        echo '<tr>
                <td><input type="radio" name="antwoord'
. $i . '" value="'.$i.'"/>' . $rij2["antwoord"] .
            '</td>
                </tr>'
;
        //kijk voor elk antwoord of het antwoord is aangeklikt
        if (isset($_POST['antwoord' . $i]))
        {

            $antwoord = 'antwoord';
            ${$antwoord . $i} = 1;
        }
else
        {
            ${$antwoord . $i} = 0;
        }
    }

    echo '<tr><td></td></tr>';
}


?>
    

        <tr>
            <td></td>
            <td><input type="submit" value="stoppen" name="submit"/></td>
        </tr>
        
<?php
//}
if (isset($_POST['submit']))
{

    //datum van vandaag
    $datum = date("Y-m-d");
    $keuzeID = $_SESSION['keuzeID'];
    //resultaat invoeren
    $query = mysql_query("INSERT INTO resultaten (resultaatID, keuzeID, datum, 1A, 1B, 1C, 1D, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, 4A, 4B, 4C, 4D, 5A, 5B, 5C, 5D, 6A, 6B, 6C, 6D, 7A, 7B, 7C, 7D, 8A, 8B, 8C, 8D, 9A, 9B, 9C, 9D, 10A, 10B, 10C, 10D, 11A, 11B, 11C, 11D, 12A, 12B, 12C, 12D, 13A, 13B, 13C, 13D, 14A, 14B, 14C, 14D, 15A, 15B, 15C, 15D)
        VALUES ('','$keuzeID','$datum','$antwoord1','$antwoord2','$antwoord3','$antwoord4','$antwoord5','$antwoord6','$antwoord7','$antwoord8','$antwoord9','$antwoord10','$antwoord11','$antwoord12','$antwoord13','$antwoord14','$antwoord15','$antwoord16','$antwoord17','$antwoord18','$antwoord19','$antwoord20','$antwoord21','$antwoord22','$antwoord23','$antwoord24','$antwoord25','$antwoord26','$antwoord27','$antwoord28','$antwoord29','$antwoord30','$antwoord31','$antwoord32','$antwoord33','$antwoord34','$antwoord35','$antwoord36','$antwoord37','$antwoord38','$antwoord39','$antwoord40','$antwoord41','$antwoord42','$antwoord43','$antwoord44','$antwoord45','$antwoord46','$antwoord47','$antwoord48','$antwoord49','$antwoord50','$antwoord51','$antwoord52','$antwoord53','$antwoord54','$antwoord55','$antwoord56','$antwoord57','$antwoord58','$antwoord59','$antwoord60')"
)
        //WHERE keuzeID = keuzeID van tabel 'keuze' ($_GET('keuzeID') keuzeID from keuze
        or die(mysql_error());
    
    echo ("Bedankt voor het invullen van de Enquete. <br><br><br><br><br><br><br><br><br><br>");
}

    
//}
    
?>
    
    </table>
</form>    

    </body>
</html>

<?php

include ("include/footer.php");

?>
 
Erwin H

Erwin H

14/06/2012 11:28:26
Quote Anchor link
Het is niet gebruikelijk dat we hier zomaar even het hele script voor iemand gaan schrijven. Wat we wel kunnen doen is je helpen en hints geven. In dit geval zal je het met twee loopjes moeten doen. Als je alle vragen en alle antwoorden uit de database hebt dan kan je (in pseudo code) op de volgende manier je radio buttons opmaken in het form.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
for alle vragen{
  schrijf vraag naar het scherm
  X = id uit de database
  for alle antwoorden op huidige vraag{
    schrijf radio button naar het scherm met
      name=antwoordX, value=antwoordID
  }
}
 
Inge V

Inge V

14/06/2012 12:36:35
Quote Anchor link
Kben al een stukje verder gekomen, dit heb ik nu:

<input type="radio" name="vraag' . $rij["vraagID"] . '" value="antwoord' . $rij2["antwoordID"] . '"/>

uitkomst broncode:
<td><input type="radio" name="vraag1" value="antwoord1"/>A. Ik voel me altijd op mijn gemak bij deze docent.</td>
</tr><tr>
<td><input type="radio" name="vraag1" value="antwoord2"/>B. Ik voel me meestal op mijn gemak bij deze docent.</td>
</tr><tr>
<td><input type="radio" name="vraag1" value="antwoord3"/>C. Ik voel me soms niet op mijn gemak bij deze docent.</td>
</tr><tr>
<td><input type="radio" name="vraag1" value="antwoord4"/>D. Ik voel me meestal niet op mijn gemak bij deze docent.</td>
</tr><tr><td></td></tr><tr>
<td><b>2.&nbsp;Werken in de les.</b></td>
</tr>
<tr><td></td></tr><tr>
<td><input type="radio" name="vraag2" value="antwoord5"/>A. Bij deze docent ben ik in de les altijd hard aan het werk.</td>

Maar ik wil nu weten of je in een POST de value kan gebruiken ipv de name?
Gewijzigd op 14/06/2012 12:37:43 door Inge V
 
Q S

Q S

14/06/2012 12:58:00
Quote Anchor link
Hoe bedoel je de value?

Als ik namelijk antwoord2 heb gekozen en ik doe

echo $_POST["vraag1"];

Dan krijg ik antwoord2 in beeld
 
Inge V

Inge V

14/06/2012 13:31:33
Quote Anchor link
Q S op 14/06/2012 12:58:00:
Hoe bedoel je de value?

Als ik namelijk antwoord2 heb gekozen en ik doe

echo $_POST["vraag1"];

Dan krijg ik antwoord2 in beeld


Ik wil uit de value 'antwoord1', 'antwoord2' enz. gebruiken. Wanneer van vraag1 antwoord1 is aangeklikt dat er een 1 wordt weggeschreven onder 1A.

eerst gebruikte ik: name="antwoord' . $i . '"
en dan dit om het ingevulde antwoord onder de juiste kolom een 1 van te maken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
//kijk voor elk antwoord of het antwoord is aangeklikt
        if (isset($_POST['antwoord' . $i]))
        {

            $antwoord = 'antwoord';
            ${$antwoord . $i} = 1;
        }
else
        {
            ${$antwoord . $i} = 0;
        }

?>


Nu heb ik dit veranderd naar <input type="radio" name="vraag' . $rij["vraagID"] . '" value="antwoord' . $rij2["antwoordID"] . '"/>
Zodat ik bij 1 vraag maar 1 antwoord kan invullen en niet meerdere, maar ik heb dan eigk de value nodig om weg te kunnen schrijven zoals ik eerst deed.

mijn insert:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if (isset($_POST['submit']))
{

    //datum van vandaag
    $datum = date("Y-m-d");
    $keuzeID = $_SESSION['keuzeID'];
    //resultaat invoeren
    $query = mysql_query("INSERT INTO resultaten (resultaatID, keuzeID, datum, 1A, 1B, 1C, 1D, 2A, 2B, 2C, 2D)
        VALUES ('','$keuzeID','$datum','$antwoord1','$antwoord2','$antwoord3','$antwoord4','$antwoord5','$antwoord6','$antwoord7','$antwoord8')"
)
        or die(mysql_error());
    
    echo ("Bedankt voor het invullen van de Enquete. <br><br><br><br><br><br><br><br><br><br>");
}

?>
Gewijzigd op 14/06/2012 13:37:24 door Inge V
 
Q S

Q S

14/06/2012 14:07:28
Quote Anchor link
Wellicht zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
for($a=1;$a<=8;$a++){
   if('antwoord'.$a == $_POST['vraag1'] || 'antwoord'.$a == $_POST['vraag2']){
       $antwoord.$a = 1;
   }
else{
       $antwoord.$a = 0;
   }
}

?>
 
Frank WD

Frank WD

14/06/2012 15:26:28
Quote Anchor link
Misschien heb je aan deze link ook nog iets.
klik
 
Inge V

Inge V

14/06/2012 15:40:41
Quote Anchor link
Q S op 14/06/2012 14:07:28:
Wellicht zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
for($a=1;$a<=8;$a++){
   if('antwoord'.$a == $_POST['vraag1'] || 'antwoord'.$a == $_POST['vraag2']){
       $antwoord.$a = 1;
   }
else{
       $antwoord.$a = 0;
   }
}

?>


De pagina laad dan met 1 vraag en 1 antwoord. Ik weet niet waar dit door kan komen..
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

14/06/2012 15:50:53
Quote Anchor link
Je maakt het jezelf te moeilijk omdat je tabellen niet goed zijn, met name de resultaten tabel, hierin staan te veel kolommen. Je kan dit beter opsplitsen:
tabel ingevulde_enquetes:
invul_id
datum
invuller_id
etc.

tabel ingevulde_antwoorden:
invul_id
vraag_id
antwoord_id
Hier maak je een primary key op de combinatie van invul_id en vraag_id

Op deze manier kan je straks ook veel simpeler rapportages maken
 
Inge V

Inge V

14/06/2012 15:54:57
Quote Anchor link
Maar dan krijg je als 1 leerling de enquete invult bij ingevulde_antwoorden al 15 rijen met antwoorden die hij heeft gekozen.. en als er zo'n 30 leerlingen tegelijk gaan, dan wordt dat dus 30x15 is nogal veel en dat wilde ik dus eigk nu proberen zo op te lossen, maar ik merk dat dat dus misschien niet gaat werken.
 
Q S

Q S

14/06/2012 15:58:28
Quote Anchor link
Ik wist niet of aanpassen van de database tot de mogelijkheden behoorde.

Het voordeel van de manier van Ger is dat deze ook flexileber is m.b.t. het aantal vragen. In jou geval zul je kolommen toe moeten voegen als er vragen bij komen. Zoals Ger het nu uitlegt maakt dit niet meer uit. Er komen dan alleen meer rijen.

Neemt nog niet weg dat ik ook even niet snap waarom je nu maar 1 vraag en 1 antwoord krijgt.
 
Inge V

Inge V

14/06/2012 16:01:30
Quote Anchor link
Dit is mijn script nu. Misschien dat je daar wijzer uit wordt..:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
session_start();
include ("include/header.php");
include ("include/config.php");
?>



<html>
    <head>
        <title>Enquete</title>
        <link rel="stylesheet" type="text/css" href="include/style.css" />
    </head>
    <body>

    <form action="" method="POST">
    <table>
    <?php

// haal vraag id's op
//hoeveel vragen staan er in de db?

$vraagantwoordid = mysql_query("SELECT vraagID, vraag FROM vragen");
while ($rij = mysql_fetch_assoc($vraagantwoordid))
{

    //query om de vragen op te halen en deze beneden erbij te zetten
    $resultvragen = mysql_query("SELECT vraagID, vraag FROM vragen WHERE vraagID =" . $rij["vraagID"]);
    //query om te kijken voor elke vraag welke antwoorden erbij horen
    $resultantwoorden = mysql_query("SELECT antwoord, antwoordID FROM antwoorden WHERE vraagID =" .
        $rij["vraagID"]);
    //vragen loop
    while ($rij1 = mysql_fetch_assoc($resultvragen))
    {

        echo '<tr>
                        <td><b>'
. $rij1["vraagID"] . '.&nbsp;' . $rij1["vraag"] . '</b></td>
                     </tr>
                     <tr><td></td></tr>'
;
    }

    //antwoorden loop
    while ($rij2 = mysql_fetch_assoc($resultantwoorden))
    {

        echo '<tr>
                <td><input type="radio" name="vraag'
. $rij["vraagID"] . '" value="antwoord' . $rij2["antwoordID"] . '"/>' . $rij2["antwoord"] .
            '</td>
                </tr>'
;
        
        


         //kijk voor elk antwoord of het antwoord is aangeklikt        
        
   for($a=1;$a<=8;$a++){
   if('antwoord'.$a == $_POST['vraag1'] || 'antwoord'.$a == $_POST['vraag2']){
       $antwoord.$a = 1;
   }
else{
       $antwoord.$a = 0;
   }
}

 
        
        
    }

    echo '<tr><td></td></tr>';
}


?>
    

        <tr>
            <td></td>
            <td><input type="submit" value="stoppen" name="submit"/></td>
        </tr>
        
<?php




if (isset($_POST['submit']))
{

    //datum van vandaag
    $datum = date("Y-m-d");
    $keuzeID = $_SESSION['keuzeID'];
    
    
    //resultaat invoeren
    $query = mysql_query("INSERT INTO resultaten (resultaatID, keuzeID, datum, 1A, 1B, 1C, 1D, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, 4A, 4B, 4C, 4D, 5A, 5B, 5C, 5D, 6A, 6B, 6C, 6D, 7A, 7B, 7C, 7D, 8A, 8B, 8C, 8D, 9A, 9B, 9C, 9D, 10A, 10B, 10C, 10D, 11A, 11B, 11C, 11D, 12A, 12B, 12C, 12D, 13A, 13B, 13C, 13D, 14A, 14B, 14C, 14D, 15A, 15B, 15C, 15D)
        VALUES ('','$keuzeID','$datum','$antwoord1','$antwoord2','$antwoord3','$antwoord4','$antwoord5','$antwoord6','$antwoord7','$antwoord8','$antwoord9','$antwoord10','$antwoord11','$antwoord12','$antwoord13','$antwoord14','$antwoord15','$antwoord16','$antwoord17','$antwoord18','$antwoord19','$antwoord20','$antwoord21','$antwoord22','$antwoord23','$antwoord24','$antwoord25','$antwoord26','$antwoord27','$antwoord28','$antwoord29','$antwoord30','$antwoord31','$antwoord32','$antwoord33','$antwoord34','$antwoord35','$antwoord36','$antwoord37','$antwoord38','$antwoord39','$antwoord40','$antwoord41','$antwoord42','$antwoord43','$antwoord44','$antwoord45','$antwoord46','$antwoord47','$antwoord48','$antwoord49','$antwoord50','$antwoord51','$antwoord52','$antwoord53','$antwoord54','$antwoord55','$antwoord56','$antwoord57','$antwoord58','$antwoord59','$antwoord60')"
)
        or die(mysql_error());

    echo ("Bedankt voor het invullen van de Enquete. <br><br><br><br><br><br><br><br><br><br>");
}

    

    
?>
    
    </table>
</form>    

    </body>
</html>

<?php

include ("include/footer.php");

?>
 
Q S

Q S

14/06/2012 16:20:13
Quote Anchor link
Ow je hebt mijn stukje code op de verkeerde plek gezet. Dat had op regel 83 gemoeten
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

14/06/2012 16:25:40
Quote Anchor link
Inge V op 14/06/2012 15:54:57:
Maar dan krijg je als 1 leerling de enquete invult bij ingevulde_antwoorden al 15 rijen met antwoorden die hij heeft gekozen.. en als er zo'n 30 leerlingen tegelijk gaan, dan wordt dat dus 30x15 is nogal veel en dat wilde ik dus eigk nu proberen zo op te lossen, maar ik merk dat dat dus misschien niet gaat werken.

Beetje krom gedacht: jij hebt dus nu als je 15 vragen hebt zoiets van 65 kolommen (sowieso al 45 te veel) in je tabel maar je maakt je wel druk om 15 rijen in een andere tabel.

Je loopt nu met in het invoeren van gegevens al tegen problemen aan, dit heeft niet alleen te maken met het feit dat je nog noet zo goed kunt programeren, maar ook omdat de opzet van je database niet goed is.
Ik vind dat je dat eerst in orde moet brengen.
 

Pagina: 1 2 volgende »



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.