Updaten van een variabele
een vraag aangaande het updaten van een variabele.
Ik heb het volgende:
Een variabele die het begingetal aanduid van een loop.
Daaronder zit een knop die die waarde iedere keer met 5 (of een ander getal) moet verhogen als er op geklikt word.
dus $startN = 0
er word op de knop geklikt en: $startN = 5
er word op de knop geklikt en: $startn = 10
enz...
Nou lukt me dit eerste keer, maar hij gaat niet hoger als 5...
Hoe werkt dit?
Alvast bedankt! ;)
Mvg Lars.
Je bent al de zoveelste die ik zie met een soortgelijk probleem. Is dit een school opdracht ofzo?
Gewijzigd op 15/09/2010 15:56:29 door - Mark -
En hoe sla ik het dan tussentijds op?
Op wat voor knop moet er gedrukt worden? Als je een page refresh krijgt, kun je die variabele opslaan in een sessie variabele, of mee geven in een $_GET variabele
Database, Sessie, hidden form element, cookie. Het ligt er maar net aan waar het voor is en voor hoelang en voor wie het beschikbaar moet zijn.
Er komt een page refresh, dus die sessie variabele klinkt het makkelijkste.
Die kun je vervolgens af vangen.
Als je met sessie variabelen gaat werken, moet je wel een session_start(); gebruiken.
Een sessie variabele maak je aan door:
$_SESSION['varnaam'] = waarde;
Om je lokale variabele die nieuwe waarde te geven in na je refresh doe je:
$varnaam = $_SESSION['varnaam'];
Waarvoor gaat het gebruikt worden? Je bent je teller stand namelijk kwijt als je je browser afsluit bij een sessie " en tevens ook bij de andere behalve als je de teller stand opslaat in een database. "
Hij hoeft niet bewaard te worden als de browser of sessie word afgesloten, hij moet gewoon de waarde steeds met een bepaald getal verhogen.
Dan is een $_SESSION inderdaad de beste keuze. Je zou er uit moeten kunnen komen met wat Merijn zo net poste. of dan nog steeds niet?
$_SESSION['startN'] = 0;
if(isset($_POST['Volgende'])){
$_SESSION['startN']+5;
}
$startN = $_SESSION['startN'];
Zou dan moeten werken? want ook dit werkt maar 1 keer.
De logica is nog ver te zoeken. Je reset $_SESSION['startN'] elke keer als je een pagina bezoekt.
Als je POST gaat gebruiken, hoef je ook geen session vars te gebruiken. POST kun je inderdaad maar 1 keer gebruiken. Als je SESSIONs gebruikt, blijven ze bestaan tot je ze verwijdert.
Thnx ;)
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
63
64
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
<?php
#| Settings | De waarde die aan $_SESSION['startN'] word toegekend als deze voor de eerste keer word aangemaakt.
$start = 0;
#| Settings | De hoogte waarmee $_SESSION['startN'] elke keer word verhoogd als daar een aanvraag voor is.
$increcement = 5 ;
#| Session starten.
session_start();
#| Kijken of $_SESSION['startN'] al bestaat
if(!isset($_SESSION['startN'])){
/*---- INFO: $_SESSION['startN'] bestaat nog niet. ----*/
#| $_SESSION['startN'] aanmaken.
$_SESSION['startN'] = $start;
}
#| Eerst kijken we of het formulier is verzonden.
if($_SERVER['REQUEST_METHOD'] == 'POST'){
/*---- INFO: Ja, het formulier is verzonden. ----*/
#| Dan kijken we nu wat de opdracht is, Verhogen van $_SESSION['startN'] of deze terug zetten naar de start stand.
if(isset($_POST['Volgende'])){
/*---- INFO: We willen de huidige stand van $_SESSION['startN'] verhogen.----*/
#| $_SESSION['startN'] verhogen.
$_SESSION['startN'] += $increcement;
}
elseif(isset($_POST['Reset'])){
/*---- INFO: We willen de huidige stand van $_SESSION['startN'] resetten.----*/
#| $_SESSION['startN'] resetten.
$_SESSION['startN'] = $start;
}
}
#| $_SESSION['startN'] wegschrijven als een variabele omdat jij die nodig hebt.
$startN = $_SESSION['startN'];
?>
#| Settings | De waarde die aan $_SESSION['startN'] word toegekend als deze voor de eerste keer word aangemaakt.
$start = 0;
#| Settings | De hoogte waarmee $_SESSION['startN'] elke keer word verhoogd als daar een aanvraag voor is.
$increcement = 5 ;
#| Session starten.
session_start();
#| Kijken of $_SESSION['startN'] al bestaat
if(!isset($_SESSION['startN'])){
/*---- INFO: $_SESSION['startN'] bestaat nog niet. ----*/
#| $_SESSION['startN'] aanmaken.
$_SESSION['startN'] = $start;
}
#| Eerst kijken we of het formulier is verzonden.
if($_SERVER['REQUEST_METHOD'] == 'POST'){
/*---- INFO: Ja, het formulier is verzonden. ----*/
#| Dan kijken we nu wat de opdracht is, Verhogen van $_SESSION['startN'] of deze terug zetten naar de start stand.
if(isset($_POST['Volgende'])){
/*---- INFO: We willen de huidige stand van $_SESSION['startN'] verhogen.----*/
#| $_SESSION['startN'] verhogen.
$_SESSION['startN'] += $increcement;
}
elseif(isset($_POST['Reset'])){
/*---- INFO: We willen de huidige stand van $_SESSION['startN'] resetten.----*/
#| $_SESSION['startN'] resetten.
$_SESSION['startN'] = $start;
}
}
#| $_SESSION['startN'] wegschrijven als een variabele omdat jij die nodig hebt.
$startN = $_SESSION['startN'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<form method="post" action="teller.php">
<input type="submit" name="Volgende" id="Volgende" value="Volgende" />
<input type="submit" name="Reset" id="Reset" value="Reset" />
</form>
</body>
</html>
Gewijzigd op 15/09/2010 17:08:28 door - Mark -