根据答案添加值

时间:2012-11-08 03:18:56

标签: php add

我有这两个文件。

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

感谢。

3 个答案:

答案 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";