I have an html form to get a number from the user for a calculation. The first number is given. The second is entered by the user. The result is posted to the same page. BUT the resulting answer is now the first number and again the second number is entered by the user. The first code works fine for the first calculation. But the next ones still use the given number, not the result.
I tried it with the else statement but couldn't get it to work right. Any direction is appreciated.

<head> <title>Calculate</title> </head> 
 <body> 

 <?php 
 $first = 2;

 if(isset($_POST['Calculate'])) 
     {
      $second = (!empty($_POST['second']) ? $_POST['second'] : null);
      $total = $first+$second; 
      print "<h2>Results</h2>"; 
      print "The total of the two numbers: $first + $second = $total <p>"; 
      $first=$total;
     }

 ?> 

 <h2>Calculate</h2>
 <p><?php echo "First Number: $first"; ?></p> <br> 
 <form action = "index.php" method = "POST"> 
 <input type="hidden" name="total" value="$total" />
  Second Number: <input type = "text" name = "second"><br> 
  <input type = "submit" name = "Calculate"/> 
  </form> 
  </body> 
  </html> 
Member Avatar for diafol

Almost. try this...

<?php 
$first = 2;
$print = '';
if($_POST)
{
    $first = $_POST['first'];
    $second = $_POST['second'];
    $total = $first + $second;
    $print = "<h2>Results</h2>"; 
    $print .= "<p>The total of the two numbers: $first + $second = $total <p>";    
}
if(isset($total)) $first = $total;
?> 
<!doctype html>
<html>
    <head> <title>Calculate</title> </head> 
    <body>
        <?php echo $print;?> 
        <h2>Calculate</h2>
        <p>First Number: <?php echo $first;?></p> <br> 
        <form action = "index.php" method = "POST"> 
            <input type="hidden" name="first" value="<?php echo $first;?>" />
            Second Number: <input type = "text" name = "second"><br> 
            <input type = "submit" name = "Calculate"/> 
        </form> 
    </body> 
</html> 

I think I love you!!!
I was up until 4am changing, testing, searching, changing, retesting, searching....... I played around with the if(isset) a few times but could never get the syntax correct.
Thank you so much.

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.