Form opslaan verwerken aan het einde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Allard Keij

Allard Keij

09/01/2013 19:43:24
Quote Anchor link
Bedankt voor je antwoord Co!

Het is inderdaad wel een oplossing. Maar ik ga niet graag met cookies werken in deze situatie. Het lijkt mij ( ook al weet ik nu zelf het antwoord ook niet helemaal ) niet de logischte manier om dit aan te pakken.

Bedankt voor het meedenken!
 
PHP hulp

PHP hulp

23/04/2024 17:17:19
 
Donny Wie weet

Donny Wie weet

09/01/2013 20:38:13
Quote Anchor link
Web Apps maak je zo te zien met Java. Misschien kan je de timer laten lopen wanneer het document.ready is?
 
Allard Keij

Allard Keij

09/01/2013 20:39:24
Quote Anchor link
Yo, ik heb ondertusse de timer werkend gekregen :)! Met uiteindelijk een redirect naar de eindpagina.
 
Kris Peeters

Kris Peeters

09/01/2013 21:19:34
Quote Anchor link
Ik heb toch ook even iets in mekaar gestoken.

answers.php
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
<?php
session_start();
if (!isset($_SESSION['time'])  || $_SERVER['REQUEST_METHOD'] !== 'POST') {
  // de gebruiker zou hier niet mogen komen
  exit;
}

else {
  // wat je hier print, wordt als respons gestuurd naar javascript
  $interval = time() - $_SESSION['time'];
  echo 'tijd: ' . $interval;
  echo '<pre>' . print_r($_POST, true) . '</pre>';
  // sessie resetten
  unset($_SESSION['time']);
  exit;
}

?>


index.php
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
<?php
session_start();
if (!isset($_SESSION['time'])) {
  $_SESSION['time'] = time();  // wordt gereset door answers.php, voor dit voorbeeld.  Zie zelf hoe je het moet doen
}
?>

<style>
#my_form li {
  display: none;
}
#my_button {
  display: none;
}
</style>
<form id="my_form" action="" method="post">
  <ul>
    <li><input name="item[]"> vraag 1: bla bla</li>
    <li><input name="item[]"> vraag 2: bla bla</li>
    <li><input name="item[]"> vraag 3: bla bla</li>
    <li><input name="item[]"> vraag 4: bla bla</li>
    <li><input name="item[]"> vraag 5: bla bla</li>
  </ul>
  <input type="button" id="my_button" value="Verzend">
</form>
<div id="clock"></div>
<div id="messages"></div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
  // elementen cachen
  var form = $('#my_form'),
      button = $('#my_button'),
      clock = $('#clock'),
      messages = $('#messages'),
      lis = form.find('li'),
      inputs = form.find('li input');
  
  // settings en zo
  var totalTime = 2*60*1000, // 2 min
      timeDown = totalTime / 1000,
      url = 'answers.php';
  
  var clockTimer = null,
      inputTimer = null,
      inputIndex = 0;
  // events (wat doet de gebruiker met de HTML-elementen)
  form.submit(function(e) {
    e.preventDefault(); // verhinder dat het formulierwordt verstuurd op klassieke wijze
    var a = 1;
  });  
  button.click(function(e) {
    button.attr('disabled', 'disabled');
    inputs.removeAttr('disabled');
    // formulier versturen;
    $.ajax({
      url: url,
      type: 'post',
      data: form.serialize(), // haalt de data uit de form
      success: function(data) {
        // data is de Ajax respons
        messages.html(data);
      }
    });
    
  });
  
  // de boel in gang trekken
  new_input();
  clock_tick();
  
  //// werking ...
  // inputs gradueel zichtbaar maken.  recursief (de functie spreekt zich elf aan)
  function new_input() {
    if (inputIndex < lis.length) {
      // <li> zichtbaar maken
      lis.eq(inputIndex).show();
      inputs.eq(inputIndex).focus();
      if (inputIndex) {
        inputs.eq(inputIndex - 1).attr('disabled', 'disabled');      
      }
      inputIndex++;
      setTimeout(
        new_input,
        Math.floor( totalTime / lis.length)
      );  
    }
    else {
      
      // button tonen
      button.show();
      inputs.attr('disabled', 'disabled');
    }
  }
  // klok
  function clock_tick() {
    var inputTime = Math.floor(totalTime / lis.length / 1000);  // in (s)
    var timeLeft = timeDown % inputTime;
    
    if (timeDown > 0) {
      setTimeout(clock_tick, 1000);
    }
    timeDown--;
    clock.html(
      timeLeft.toFixed(0) + ' / ' +  (totalTime/1000).toFixed(0)
    );
  }
});
</script>
Gewijzigd op 09/01/2013 21:20:00 door Kris Peeters
 

Pagina: « vorige 1 2



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.