Ik ben bezig een experimentje te maken dat via internet afgenomen zal worden.
Dit gaat voornamelijk via PHP / MySQL, wanneer de proefpersoon van de ene pagina naar de andere pagina, wordt hierbij data verstuurd door middel van hidden forms.
Nu loop ik een beetje vast op één punt. Normaliter gaat de proefpersoon van de ene naar de andere pagina door op een button te drukken. Nu zijn er twee gevallen waarin ik graag wil dat er géén button komt, maar dat de pagina 1 resp. 2 seconden zichtbaar is en daarna vanzelf doorgaat naar de volgende pagina. Hierbij moeten dus ook die hidden forms meegestuurd worden!
Dit kan dus niet in php, want het moet clientsided gebeuren. Het kan ook niet dmv een meta-refresh, want dan wordt het formulier niet meegestuurd. Dus, het zal met JavaScript moeten.
Nu vond ik op w3schools wat informatie en dat leverde mij het volgende scriptje op:
[javascript]
<script language="javascript">
function pauze() {
setTimeout("meuksturen()", 1000);
}
function meuksturen() {
document.forms.myForm.submit();
}
</script>
[/javascript]
Vervolgens heb ik aan de body-tag ' onLoad="pauze()" ' toegevoegd. Ik ben niet zo'n JavaScript held, dus ik weet niet of dat het gewenste effect heeft (de JavaScript uitvoeren nadat de hele pagina geladen is), maar het liep al vast bij documents.forms.myForm.submit(). De JavaScript Console van Firefox gaat hierbij zeggen dat dit geen functie is.
Aangezien ik dus niet zo geweldig ben met JavaScript weet ik even niet hoe ik dit aan zal pakken en ik hoop dat iemand een idee voor me heeft of me iets in de goede richting kan sturen.
Voor de volledigheid ook nog een stukje php/html waarin het uitgevoerd moet worden:
Dit gaat voornamelijk via PHP / MySQL, wanneer de proefpersoon van de ene pagina naar de andere pagina, wordt hierbij data verstuurd door middel van hidden forms.
Nu loop ik een beetje vast op één punt. Normaliter gaat de proefpersoon van de ene naar de andere pagina door op een button te drukken. Nu zijn er twee gevallen waarin ik graag wil dat er géén button komt, maar dat de pagina 1 resp. 2 seconden zichtbaar is en daarna vanzelf doorgaat naar de volgende pagina. Hierbij moeten dus ook die hidden forms meegestuurd worden!
Dit kan dus niet in php, want het moet clientsided gebeuren. Het kan ook niet dmv een meta-refresh, want dan wordt het formulier niet meegestuurd. Dus, het zal met JavaScript moeten.
Nu vond ik op w3schools wat informatie en dat leverde mij het volgende scriptje op:
[javascript]
<script language="javascript">
function pauze() {
setTimeout("meuksturen()", 1000);
}
function meuksturen() {
document.forms.myForm.submit();
}
</script>
[/javascript]
Vervolgens heb ik aan de body-tag ' onLoad="pauze()" ' toegevoegd. Ik ben niet zo'n JavaScript held, dus ik weet niet of dat het gewenste effect heeft (de JavaScript uitvoeren nadat de hele pagina geladen is), maar het liep al vast bij documents.forms.myForm.submit(). De JavaScript Console van Firefox gaat hierbij zeggen dat dit geen functie is.
Aangezien ik dus niet zo geweldig ben met JavaScript weet ik even niet hoe ik dit aan zal pakken en ik hoop dat iemand een idee voor me heeft of me iets in de goede richting kan sturen.
Voor de volledigheid ook nog een stukje php/html waarin het uitgevoerd moet worden:
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
| <html> <head> <title>Experiment</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="center"> <?php $trial = $_POST["trial"]; $login = $_POST["login"]; $dag = $_POST["dag"]; $blok = $_POST["blok"]; $letter = $_POST["letter"]; if ( empty($letter) ) { die("Je moet wel een letter invoeren!<br>Druk op 'Vorige' om dit alsnog te doen."); } $conn = mysql_connect("blah","blah","blah"); mysql_select_db("inderdaad",$conn); $sql = "SELECT * FROM experiment WHERE blok = '$blok' AND volgnr = '$trial'"; $result = mysql_query($sql, $conn) or die(mysql_error()); $zinnen = mysql_fetch_array($result); if ($zinnen[9] == $letter) { $goedoffout = 1; } else { $goedoffout = 0; } echo $zinnen[10]; ?> <!-- De onderstaande form moet dus verstuurd worden na 1000ms gewacht te hebben --> <form action=toonvraag.php method=post name="myForm"> <input type="hidden" name="button2" value="<?php print $countbutton2 ?>"> <input type="hidden" name="trial" value="<?php print $trial ?>"> <input type="hidden" name="login" value="<?php print $login ?>"> <input type="hidden" name="dag" value="<?php print $dag ?>"> <input type="hidden" name="blok" value="<?php print $blok ?>"> <input type="hidden" name="goedoffout" value="<?php print $goedoffout ?>"> <br> <br> <div class="expbutton"> <input name="submit" type="submit" value="volgende"> </div> </form> </div> </body> </html> |
Rail Away!