我有这两个文件。
的 a.php只会 的
<?
echo "
<form action = 'B.php' method = 'post'>
5+5 = ?
Write answer: <input type = 'text' name = 'op1'>
10+10 = ?
Write answer: <input type = 'text' name = 'op2'>
</form>
";
?>
的 B.php 的
<?
$op1 = $_REQUEST ['op1'];
$op2 = $_REQUEST ['op2'];
if ($op1 == '10'){
echo "Right answer. 2p.";
$mark = '2';
}else{
echo "Wrong answer. 0p.";
$mark2 = '0';
}
if ($op2 == '20'){
echo "Right answer. 2p.";
$mark3 = '2';
}else{
echo "Wrong answer. 0p.";
$mark4 = '0';
}
?>
如何制作表达式以进行全部添加? 我写了一个简单的例子,我有20个操作,我怎么能根据答案添加2点或1点或0来做到最后写出结果? (这就像从0到10的考试)
感谢。
答案 0 :(得分:1)
尝试将变量设置为0然后添加点。这是通过if
语句将所有内容添加到一起的最基本方法。
<?php
$op1 = $_REQUEST ['op1'];
$op2 = $_REQUEST ['op2'];
$total=0;
if ($op1 == '10'){
echo "Right answer. 2p.";
$mark = '2';
$total+=2;
}else{
echo "Wrong answer. 0p.";
$mark2 = '0';
}
if ($op2 == '20'){
echo "Right answer. 2p.";
$mark3 = '2';
$total+=2;
}else{
echo "Wrong answer. 0p.";
$mark4 = '0';
}
echo "Total points: $total";
?>
答案 1 :(得分:1)
虽然提供了答案,但我会指出您的代码有什么问题,即PLENTY
。
首先,为什么在直接使用HTML时需要回显HTML?回应大量HTML是使代码 UGLY 的一种做法。
其次,您正在对每个问题和答案使用if语句。这没有意义:为每个问题添加10行代码。
第三,不要使用$_REQUEST
。
我建议维护,db或一系列问题和答案。例如,
$q_array = Array(
array(
"question" => "abc",
"answer" => "455",
),....
)
然后,您可以回答问题,并使用循环检查答案。
答案 2 :(得分:0)
shubam的扩展答案:
$ q_array =数组(
"op1"=>"10",
op2=>"20"
)
数组的键是表单中的输入类型字段名称,数组的值是正确的答案
$total=0;
foreach($_REQUEST as $key=>$val)
{
if($q_array[$key]=$val)
{
echo "Right answer. 2p.";
$mark = '2';
$total+=2;
echo"<br>";
}
}
echo "Total points: $total";