我需要做这个练习:
创建一个函数workOutGradeAv - 此方法将读取某些等级,然后计算并显示平均成绩。
显示有意义的介绍性消息。 1.1稍后在代码中声明您需要的任何变量。
1.2在HTML表单的5个单独的输入框中显示要求5个等级的消息。您还应该解释他们应该每行输入一个等级 1.3除非正确输入所有5个字段并且在等级边界内的值,否则不应该提交表格
1.4使用do循环(控制程序流程):
1.4.1将输入形式的等级读入变量。 1.4.2(使用逻辑运算符)条件语句(If)检查等级是否在0到101范围之外(使用布尔OR)并且如果为真则打印错误消息。 1.4.3否则如果成绩不是101,则将成绩添加到
总。 结束do循环并检查等级不是101
1.5计算平均成绩并使用合适的信息显示结果。
我的代码是这样的: Assess1Grades.php
<!doctype html>
<html>
<head>
<title>Grade Assessor</title>
</head>
<body>
<h2>Grade Assessor<h2>
<table border="1">
<tr>
<td>
<table>
<form action="grades.php" method="post">
<tr>
<td>
Enter 5 grades. One per each line:
</td>
</tr>
<tr>
<td>
Grade 1: <input type="number" name="grade1" required>
</td>
</tr>
<tr>
<td>
Grade 2: <input type="number" name="grade2" required>
</td>
</tr>
<tr>
<td>
Grade 3: <input type="number" name="grade3" required>
</td>
</tr>
<tr>
<td>
Grade 4: <input type="number" name="grade4" required>
</td>
</tr>
<tr>
<td>
Grade 5: <input type="number" name="grade5" required>
</td>
</tr>
<tr>
<td align="center">
<input type="submit">
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
grades.php
<!doctype html>
<html>
<head>
<title>Grade Assessor</title>
</head>
<body>
<h2>Grade Assessor<h2>
<table border="1">
<tr>
<td>
<table>
<tr>
<td>
The Average grade is:
</td>
<td>
<?php
function workOutGradeAv() {
$averagegrade=$grades/5;
echo "$averagegrade";
}
$grades=0;
do {
if ($_Post["grade1"] < 0 or $_Post["grade1"] > 101) {
echo "Error! Check Input.";
} elseif ($_Post["grade2"] < 0 or $_Post["grade2"] > 101) {
echo "Error! Check Input.";
} elseif ($_Post["grade3"] < 0 or $_Post["grade3"] >101) {
echo "Error! Check Input.";
} elseif ($_Post["grade4"] < 0 or $_Post["grade4"] >101) {
echo "Error! Check Input.";
} elseif ($_Post["grade5"] < 0 or $_Post["grade5"]>101 ) {
echo "Error! Check Input.";
} else {
$grades = $grades + $_Post["grade1"] + $_Post["grade2"] + $_Post["grade3"] + $_Post["grade4"] + $_Post["grade5"];
}
}
while ($_Post["grade1"]!= 101);
workOutGradeAv();
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
当我提交表单时,输出只是&#34;平均等级是&#34;而且没有结果。我做错了什么?
由于
答案 0 :(得分:1)
grades.php
1)删除不必要的do while
循环
2)将$_Post
替换为$_POST
。PHP
是区分大小写的语言。
3)要显示功能等级,您必须将grades
声明为全局。或者将其作为参数传递。
<!doctype html>
<html>
<head>
<title>Grade Assessor</title>
</head>
<body>
<h2>Grade Assessor<h2>
<table border="1">
<tr>
<td>
<table>
<tr>
<td>
The Average grade is:
</td>
<td>
<?php
function workOutGradeAv($grades) {
$averagegrade=$grades/5;
echo "$averagegrade";
}
$grades=0;
if ($_POST["grade1"] < 0 || $_POST["grade1"] > 101) {
echo "Error! Check Input.";
} elseif ($_POST["grade2"] < 0 or $_POST["grade2"] > 101) {
echo "Error! Check Input.";
} elseif ($_POST["grade3"] < 0 or $_POST["grade3"] >101) {
echo "Error! Check Input.";
} elseif ($_POST["grade4"] < 0 or $_POST["grade4"] >101) {
echo "Error! Check Input.";
} elseif ($_POST["grade5"] < 0 or $_POST["grade5"]>101 ) {
echo "Error! Check Input.";
} else {
$grades = $grades + $_POST["grade1"] + $_POST["grade2"] + $_POST["grade3"] + $_POST["grade4"] + $_POST["grade5"];
}
workOutGradeAv($grades);
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>