问题页面
<html>
<head><title>ex41a</title></head>
<body>
<form method="post" name="ex41a" action="ex41b.php">
<hr>
Q1: Who made this question? <br>
<input type="radio" name="1ans" value="Spiderman"> Spiderman <br>
<input type="radio" name="1ans" value="Ed"> Ed <br>
<input type="radio" name="1ans" value="Superman"> Superman <br>
<input type="radio" name="1ans" value="The Hulk"> The Hulk <br>
<hr>
Q2: What is this for? <br>
<input type="radio" name="2ans" value="Exercise"> Exercise <br>
<input type="radio" name="2ans" value="Your own self"> Your own self <br>
<input type="radio" name="2ans" value="Practice"> Practice <br>
<input type="radio" name="2ans" value="Nothing"> Nothing <br>
<hr>
Q3: Who is the teacher? <br>
<input type="radio" name="3ans" value="Mr. Lo"> Mr. Lo <br>
<input type="radio" name="3ans" value="Mr. Lai"> Mr. Lai <br>
<input type="radio" name="3ans" value="Mr. Ivan"> Mr. Ivan <br>
<input type="radio" name="3ans" value="Mr. Chow"> Mr. Chow <br>
<hr>
<input type="submit" name="Submit">
</body>
</html>
点页面
<html>
<head><title>ex41b</title></head>
<body bgcolor="silver" text="black">
<body>
<font size=30 color=blue>Your total point is:</font><hr>
<?php
if($_POST["1ans"]=="Ed") {
$result1=1;
}else{
$result1=0;
}
if($_POST["2ans"]=="Practice") {
$result2=1;
}else{
$result2=0;
}
if($_POST["3ans"]=="Mr Chow") {
$result3=1;
}else{
$result3=0;
}
echo $_POST["result1"]+$_POST["result2"]+$_POST["result3"];
?>
<hr>
<a href="ex41a.php">Back</a>
</body>
</html>
我已经尝试过这个代码,但是如果我选择了正确的答案,我仍然得到0分......如果有正确的答案我怎么能这样做呢?它总共会增加1分3分......
Q1 ans是Ed
Q2 ans is Practice
第三季度是周先生谢谢!!!
答案 0 :(得分:2)
您的代码非常难看,但要解决此问题,请先使用您引入的变量而不是未定义的POST变量:
echo $result1+$result2+$result3;
以下是对更好结构的建议:
$correct = array(1 => 'Ed',
2 => 'Practice',
3 => 'Mr Chow');
$result = array();
$points = 0;
for($i = 1; $i <= 3; $i++) {
if($_POST['ans'.$i] == $correct[$i]) {
$result[$i] = true;
$points++;
}else{
$result[$i] = false;
}
}
echo $points;
如果用户在每个问题上回答正确,则$result
将包含,$points
是正确答案的总数。请注意,我更喜欢数组而不是编号的变量名,因为使用数组更容易。
答案 1 :(得分:1)
使用
echo $result1 + $result2 + $result3;
而不是
echo $_POST["result1"]+$_POST["result2"]+$_POST["result3"];
答案 2 :(得分:0)
更改此行:
echo $_POST["result1"]+$_POST["result2"]+$_POST["result3"];
要:
echo $result1+$result2+$result3;
请考虑一下:变量中的值如何最终在$_POST
超全局中?
答案 3 :(得分:0)
您需要:echo $result1+$result2+$result3;
而不是帖子值