Use hidden fields to pass value in PHP
Description
The following code shows how to use hidden fields to pass value.
Example
<!DOCTYPE html>//from w w w .j ava2 s. c o m
<html>
<body>
<?php
if ( isset( $_POST["submitButton"] ) and isset( $_POST["guess"] ) ) {
processForm();
} else {
displayForm( rand( 1, 100 ) );
}
function processForm() {
$number = (int)$_POST["number"];
$guessesLeft = (int)$_POST["guessesLeft"] - 1;
$guess = (int)$_POST["guess"];
if ( $guess == $number ) {
displaySuccess( $number );
} elseif ( $guessesLeft == 0 ) {
displayFailure( $number );
} elseif ( $guess < $number ) {
displayForm( $number, $guessesLeft, "Too low - try again!" );
} else {
displayForm( $number, $guessesLeft, "Too high - try again!" );
}
}
function displayForm( $number, $guessesLeft=5, $message="" ) {
?>
<form action="" method="post">
<div>
<input type="hidden" name="number" value="<?php echo $number?>" />
<input type="hidden" name="guessesLeft" value="<?php echo $guessesLeft?>" />
<?php if ( $message ) echo "<p>$message</p>" ?>
<p>You have <?php echo $guessesLeft?> <?php echo ( $guessesLeft == 1 ) ? "try" : "tries"?> left to guess it!</p>
<p>What's your guess? <input type="text" name="guess" value="" style="float: none; width: 3em;" /> <input type="submit" name="submitButton" value="Guess" style="float: none;" /></p>
</div>
</form>
<?php
}
function displaySuccess( $number ) {
?>
<h2>Congratulations!</h2>
<p>You guessed my number: <?php echo $number?>!</p>
<form action="" method="post">
<p><input type="submit" name="tryAgain" value="Try Again" style="float: none;" /></p>
</form>
<?php
}
function displayFailure( $number ) {
?>
<h2>Bad luck!</h2>
<p>You ran out of guesses. My number was <?php echo $number?>!</p>
<form action="" method="post">
<p><input type="submit" name="tryAgain" value="Try Again" style="float: none;" /></p>
</form>
<?php
}
?>
</body>
</html>
The code above generates the following result.