Ik heb dit scriptje, maar hij blijft waarde 4 weergeven.
Hoe kan ik het aanpakken dat a met iedere post 1 opgehoogd wordt?




<?
$a = 4;

if($_POST['submitform']) {

$a = $a = 1;

echo $a;

}
else {}


?>
<form name="contactform" action="<?php echo $PHP_SELF; ?>" method="post">
<input type="submit" value="ga!" name="submitform">
Ok, ik begin opnieuw:
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?

<?

$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="<?php echo $PHP_SELF; ?>" method="post">
<input type="submit" value="ga!" name="knopje">
</body>
[php]session[/php]
Ok, ik open een sessie, die snap ik.

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.
Omdat je nu de sessie array moet gebruiken
$_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.
<?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>


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
:)
Niek, bedankt voor je input! maarrrr... hij blijft op 3 hangen en gaat niet verder als ik nog een keer op de knop druk.
Het probleem waar ik al heel de tijd mee worstel blijft.
Dat komt omdat elke keer als de pagina wordt herladen de session variabele wordt gereset naar 4.

Probeer in plaats van $_SESSION['a'] = 4 eens:

if(!isset($_SESSION['a']))
$_SESSION['a'] = 4;
Arjen en Mark! Bedankt voor jullie input, die werkt! Super, bedankt!

Reageren