0

この2つのファイルがあります。

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までの試験のようなものです)

ありがとう。

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 を直接使用できるのに、なぜ HTML をエコーする必要があるのでしょうか。大量の HTML をエコーすることは、コードを醜くするまさに実践の 1 つです。

次に、すべての質問と回答に 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 に答える