0

我有这两个文件。

一个.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的考试)

谢谢。

4

3 回答 3

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";
?>
于 2012-11-08T03:24:31.637 回答
1

虽然提供了答案,但我会指出您的代码有什么问题,即PLENTY.

首先,在可以直接使用HTML的情况下,为什么还要echo HTML呢?与大量 HTML 相呼应是使代码变得丑陋的做法之一。

其次,您对每个问题和答案都使用 if 语句。这是没有意义的:为每个问题添加 10 行代码。

第三,永远不要使用$_REQUEST.

我建议维护一个数据库或一系列问题和答案。例如,

$q_array = Array(
     array(
        "question" => "abc",
        "answer" => "455",
     ),....
)

然后,您可以回显问题,并使用循环检查答案。

于 2012-11-08T03:49:21.613 回答
0

shubam 答案的扩展:
$q_array = 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";
于 2012-11-08T04:17:30.003 回答