Hello,
as you all already know from my previous question I'm new in PHP(by the way,thanks again for the previous help),
I am trying to build a simple "walking" program,so I'll have "forwards",
"backeards","right" and "left" buttons and when I click on one of them the picture on the page will change.
I started with a simple variable expirement,I have one button on the page and when I click it I expect the variable to grow by 1(in the future that var will show a place inside an array),but from some reason the code doesn't work,here is the code:

<html>
<body>
<?php
$array[3];
$i=0;?>
<BUTTON type="pushbutton" onClick="<?php $i++?>" ><img alt="Forwards"/ > </BUTTON>
<?php
echo"<br/>".$i ; ?>
</body>
</html>

The described array will be used later.
The problem with the code is that the printed variable value is always 1,
it doesn't equals 0 like it should before I push the button and it doesn't turn to 2 after I push the button.
Can please anyone tell me how to fix it.
And also,I have some C/C++ programing expirience,so maybe it gives me trouble when I try to program on php,any php profi advice about my project would be great.

Thank you,
A.

Recommended Answers

All 5 Replies

try something like this:
I don't think I have this down yet but this will give you some direction
$i = 0;
$j = 0;
$k = 0;
$l = 0;
Though it is not necessary to initialize the variables, but I don't think it hurts anything.

switch ($submit) {
case left
$i = ++$i;
echo $i;
break;
case (right)
$j = ++$j:
echo $j;
break;
case (forward)
$k = ++$k;
echo $k;
break;
case (backward)
$l = ++$l
echo $l;
break;
}

Then when you make buttons your submits have the left, right , forward, and backwards assigned to them.
I hope this puts you in the right direction.

PHP does not work like C/C++. When a page refreshes its previous state is gone, it has no knowledge of what happened before. You must save variables if you want to carry them across pageloads with either a database, sessions, cookies or files.

You need JavaScript (unless you're comfortable with the page reloading on each change).

Mathman,I'll check it but I dont think it will help if the language doesn't remember variables values...
ShawnCplus,
I tried to save the variable into a file,but it didn't help,
I still have the same problem,here is the code:

<html>
<body>
<?php
function add ()
{
$fp=fopen("position.dat","r");
$i=fgetc($fp);
fclose($fp);
$i++;
$fp=fopen("position.dat","w");
fwrite($fp,$i);
fclose($fp);
}
$array[3];
$i=0;
$fp=fopen("position.dat","w");
fwrite($fp,$i);
fclose($fp);


?>
<BUTTON type="submit" onClick="<?php add()?>" "><img alt="Forwards"/ > </BUTTON>
<?php
$fp=fopen("position.dat","r");
echo "<br/>".fgetc($fp) ; 
fclose($fp);
?>
</body>
</html>

BuddyLee17,
at the moment I'm trying to handle php,not JavaScript.

Hi everyone,
I changed the code to the following:

<html>
<body>
<?php
function add ()
{
$fp=fopen("position.dat","r");
$i=fgetc($fp);
fclose($fp);
$i++;
$fp=fopen("position.dat","w");
fwrite($fp,$i);
fclose($fp);
}
$array[3];
?>
<INPUT TYPE="BUTTON"  onClick="<?php add();?>" ><img alt="Forwards"/ > </INPUT>
<?php
$fp=fopen("position.dat","r");
echo "<br/>".fgetc($fp) ; 
fclose($fp);
?>
</body>
</html>

And now something weird happens,
the printed variables value increases every time the page reloads
WITHOUT me clicking on the button!
And when I do click on the button the code ignores it(the variables value doesn't change).
Why does it happen?

A.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.