[JS] Na 1sec wachten automatisch form versturen

Pagina: 1
Acties:

  • Mad Marty
  • Registratie: Juni 2003
  • Laatst online: 10:55

Mad Marty

Je bent slimmer als je denkt!

Topicstarter
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:
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!


  • Bram77
  • Registratie: September 2004
  • Laatst online: 10-07-2023
Werkt dit misschien?

code:
1
2
3
function pauze(){
 setTimeout("document.forms[0].submit()", 1000);
}

[ Voor 61% gewijzigd door Bram77 op 22-02-2005 11:13 ]


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 10:26

Salandur

Software Engineer

Mad Marty schreef op dinsdag 22 februari 2005 @ 11:08:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- 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>
Hij gaat fout op <input name="submit" ..>. Dan wordt de standaard functie naam submit overschreven in sommige/de meeste browsers. Beter een naam als actie ofzo gebruiken want die komt meestal niet voor in het formulier.Geen action gebruiken want dat is al een standaard formulier waarde.

Je kan ook document.myForm.submit proberen of document.forms['myForm'].submit proberen. Weet niet uit mijn hoofd welke correct is.

[ Voor 26% gewijzigd door Salandur op 22-02-2005 11:14 ]

Assumptions are the mother of all fuck ups | iRacing Profiel


  • Mad Marty
  • Registratie: Juni 2003
  • Laatst online: 10:55

Mad Marty

Je bent slimmer als je denkt!

Topicstarter
Salandur heeft de oplossing!
Na het veranderen van de naam van de button doet-ie het wel. Mjah, die button die gaat nu juist weg omdat die niet meer nodig is :)
Danku!

Rail Away!


  • Sabbi
  • Registratie: December 2000
  • Laatst online: 09:56

Sabbi

je denkt aan mij.

Doe anders gewoon
code:
1
<META HTTP-EQUIV=Refresh CONTENT="10; URL=http://wc.toilet.kont/script.php?bert=anus&hidden=php">

om je var's mee te geven.