954,574 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

A question about variable

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.

Arctic wolf
Light Poster
47 posts since Jul 2007
Reputation Points: 15
Solved Threads: 1
 

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.

mathman54
Newbie Poster
4 posts since Nov 2008
Reputation Points: 10
Solved Threads: 0
 

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.

ShawnCplus
Code Monkey
Team Colleague
1,583 posts since Apr 2005
Reputation Points: 526
Solved Threads: 268
 

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

buddylee17
Practically a Master Poster
697 posts since Nov 2007
Reputation Points: 232
Solved Threads: 137
 

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.

Arctic wolf
Light Poster
47 posts since Jul 2007
Reputation Points: 15
Solved Threads: 1
 

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.

Arctic wolf
Light Poster
47 posts since Jul 2007
Reputation Points: 15
Solved Threads: 1
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You