waarde na post ophogen met 1
Hier het script, zoals je ziet is het een heel simpel verhaal. Ik wil een fruitmachine bouwen. Als je begint heb je 4 credits. Iedere keer als op de knop gedrukt wordt, gaat er 1 credit af. En dat krijg ik niet voor elkaar.
Wie helpt mij?
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
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
<?
$a = 4;
if($_POST['knopje']) {
$the_array = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array);
$the_array1 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array1);
$the_array2 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array2);
echo "
<table width = 60%>
<tr>
<td>
<img src = $the_array[1] width = 150 height = 150 align = center />
<td>
<img src = $the_array1[1] width = 150 height = 150 align = center />
</td>
<td>
<img src = $the_array2[1] width = 150 height = 150 align = center />
</td>
</tr>
</table>
";
$a = $a - 1;
echo $a;
}
else {
}
?>
$a = 4;
if($_POST['knopje']) {
$the_array = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array);
$the_array1 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array1);
$the_array2 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array2);
echo "
<table width = 60%>
<tr>
<td>
<img src = $the_array[1] width = 150 height = 150 align = center />
<td>
<img src = $the_array1[1] width = 150 height = 150 align = center />
</td>
<td>
<img src = $the_array2[1] width = 150 height = 150 align = center />
</td>
</tr>
</table>
";
$a = $a - 1;
echo $a;
}
else {
}
?>
<form name="knopje" action="" method="post">
<input type="submit" value="ga!" name="knopje">
</body>
En dan? Ik blijf met het probleem zitten dat de waarde hetzelfde blijft. Na de eerste keer klikken vernadert hij -1, maar daarna niet meer.
$_SESSION['a']
Je neemt de huidige waarde (bijv $current) mee in de sessie. Nadat er op het knopje is gedrukt wordt $current = $current - 1. En dat sla je dan opnieuw op in de sessie zodat je de waarde mee kunt nemen naar de volgende pagina. Je kunt een $var niet meenemen naar de volgende pagina.
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
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
<?php
session_start(); // ~Niek Edit: Start de Sessie
$_SESSION['a'] = 4; // ~Niek Edit: Dit moet een SESSIE ARRAY zijn
if($_POST['knopje']) {
$the_array = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array);
$the_array1 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array1);
$the_array2 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array2);
echo "
<table width = 60%>
<tr>
<td>
<img src = $the_array[1] width = 150 height = 150 align = center />
<td>
<img src = $the_array1[1] width = 150 height = 150 align = center />
</td>
<td>
<img src = $the_array2[1] width = 150 height = 150 align = center />
</td>
</tr>
</table>
";
// ~Niek Edit: Let op! Als $_SESSION['a'] 0 is op dit moment, zal hij op de volgende regel negatief worden! Maar de (simpele) oplossing daarvoor laat ik je zelf mee experimenteren :)
$_SESSION['a']--; // ~Niek Edit: Verlaag de variabele met 1.
echo $_SESSION['a']; // ~Niek Edit: Toon de variabele.
}
else {
}
?>
<form name="knopje" action="<?php echo $PHP_SELF; ?>" method="post">
<input type="submit" value="ga!" name="knopje">
</body>
session_start(); // ~Niek Edit: Start de Sessie
$_SESSION['a'] = 4; // ~Niek Edit: Dit moet een SESSIE ARRAY zijn
if($_POST['knopje']) {
$the_array = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array);
$the_array1 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array1);
$the_array2 = array( "peer.jpg", "banaan.jpg", "appel.jpg", "mandarijn.jpg" , "meloen.jpg");
shuffle($the_array2);
echo "
<table width = 60%>
<tr>
<td>
<img src = $the_array[1] width = 150 height = 150 align = center />
<td>
<img src = $the_array1[1] width = 150 height = 150 align = center />
</td>
<td>
<img src = $the_array2[1] width = 150 height = 150 align = center />
</td>
</tr>
</table>
";
// ~Niek Edit: Let op! Als $_SESSION['a'] 0 is op dit moment, zal hij op de volgende regel negatief worden! Maar de (simpele) oplossing daarvoor laat ik je zelf mee experimenteren :)
$_SESSION['a']--; // ~Niek Edit: Verlaag de variabele met 1.
echo $_SESSION['a']; // ~Niek Edit: Toon de variabele.
}
else {
}
?>
<form name="knopje" action="<?php echo $PHP_SELF; ?>" method="post">
<input type="submit" value="ga!" name="knopje">
</body>
Mijn aanpassingen zijn aangegeven met commentaar.
Edit:
Oh, en:
$a--;
is hetzelfde als
$a = $a - 1;
Dus:
$a++;
is hetzelfde als
$a = $a + 1;
En dit verhaal kan dan dus ook met een array entry, zoals die $_SESSION
:)
Gewijzigd op 16/09/2010 12:22:11 door niek s
Het probleem waar ik al heel de tijd mee worstel blijft.
Probeer in plaats van $_SESSION['a'] = 4 eens:
if(!isset($_SESSION['a']))
$_SESSION['a'] = 4;
Gewijzigd op 17/09/2010 00:34:29 door Arjan -
Arjen en Mark! Bedankt voor jullie input, die werkt! Super, bedankt!