Morning Everyone,
I am trying to troubleshoot this code. I have made progress, but I am doing a simple average calculation. When I try and declare a variable before using it I have issues. When I try to just use it I get errors saying declare a variable.
Any idea what I am doing incorrectly on the $Average portion. I either can’t render the page or I get 0.00 because when I declare the variable I don’t have an input for it yet.
JavaScript
x
<?php
// get the data from the form
$first = filter_input(INPUT_POST, 'first');
$last = filter_input(INPUT_POST, 'last');
$one = filter_input(INPUT_POST, 'one',
FILTER_VALIDATE_FLOAT);
$two = filter_input(INPUT_POST, 'two',
FILTER_VALIDATE_FLOAT);
$three = filter_input(INPUT_POST, 'three',
FILTER_VALIDATE_FLOAT);
//var = $Average ;
$Sum = filter_input(INPUT_POST, 'Sum');
// validate Score one
if ($one === FALSE ) {
$error_message = 'Score one must be a valid number.';
} else if ( $one < 0 ) {
$error_message = 'Score one cannot be less than zero.';
// validate Score two
if ($two === FALSE ) {
$error_message = 'Score two must be a valid number.';
} else if ( $two < 0 ) {
$error_message = 'Score two cannot be less than zero.';
// validate Score three
if ($three === FALSE ) {
$error_message = 'Score three must be a valid number.';
} else if ( $three < 0 ) {
$error_message = 'Score three cannot be less than zero.';
// set error message to empty string if no invalid entries
} else {
$error_message = ''; }
// if an error message exists, go to the index page
if ($error_message != '') {
include('index.php');
exit();
}
// calculate the average score
//$Sum = $one; + $two; + $three;
//$Average = $Sum / 3;}}
$Average = ($one + $two + $three)/3;}}
$Average = number_format($Average, 2);
?>
<!DOCTYPE html>
<html>
<head>
<title>Assignment 2</title>
<link rel="stylesheet" type="text/css" href="main.css"/>
</head>
<body>
<main>
<h1>Assignment 2</h1>
<label>Student Name:</label>
<span><?php echo $first; ?></span><span><?php echo " ", $last; ?></span><br />
<label>Your Scores:</label>
<span><?php echo $one, ","; ?></span> <span><?php echo $two, ","; ?></span> <span><?php echo $three; ?></span><br />
<label>Average:</label>
<span><?php echo $Average; ?></span><br />
</main>
</body>
</html>
Advertisement
Answer
In your if else codes , your values can’t arrive calculation line. I edited this part and include isset for $one , $two , $three :
JavaScript
<?php
// get the data from the form
$first = filter_input(INPUT_POST, 'first');
$last = filter_input(INPUT_POST, 'last');
$one = filter_input(INPUT_POST, 'one',
FILTER_VALIDATE_FLOAT);
$two = filter_input(INPUT_POST, 'two',
FILTER_VALIDATE_FLOAT);
$three = filter_input(INPUT_POST, 'three',
FILTER_VALIDATE_FLOAT);
//var = $Average ;
$Sum = filter_input(INPUT_POST, 'Sum');
if(!isset($one)){$one=0;}else{$error_message ='You must enter a value';}
if(!isset($two)){$two=0;}else{$error_message ='You must enter a value';}
if(!isset($three)){$three=0;}else{$error_message ='You must enter a value';}
// validate Score one
if ($one === FALSE ) {
$error_message = 'Score one must be a valid number.';
} else if ( $one < 0 ) {
$error_message = 'Score one cannot be less than zero.';
// validate Score two}
}
if ($two === FALSE ) {
$error_message = 'Score two must be a valid number.';
} else if ( $two < 0 ) {
$error_message = 'Score two cannot be less than zero.';
// validate Score three
}
if ($three === FALSE ) {
$error_message = 'Score three must be a valid number.';
} else if ( $three < 0 ) {
$error_message = 'Score three cannot be less than zero.';
// set error message to empty string if no invalid entries
} else {
$error_message = ''; }
// if an error message exists, go to the index page
if ($error_message != '') {
include('index.php');
exit();
}
// calculate the average score
//$Sum = $one; + $two; + $three;
//$Average = $Sum / 3;}}
$Average = ($one + $two + $three)/3;
$Average = number_format($Average, 2);
?>
<!DOCTYPE html>
<html>
<head>
<title>Assignment 2</title>
<link rel="stylesheet" type="text/css" href="main.css"/>
</head>
<body>
<main>
<h1>Assignment 2</h1>
<label>Student Name:</label>
<span><?php echo $first; ?></span><span><?php echo " ", $last; ?></span><br />
<label>Your Scores:</label>
<span><?php echo $one, ","; ?></span> <span><?php echo $two, ","; ?></span> <span><?php echo $three; ?></span><br />
<label>Average:</label>
<span><?php echo $Average; ?></span><br />
</main>
</body>
</html>