2017-03-09 12 views
0

私はこの演習を実行する必要があります。グレード電卓

は、関数workOutGradeAvを作成する - この方法ではうまくいか、平均等級を表示し、その後、いくつかの等級に読み込みます。

意味のある紹介メッセージを表示します。 1.1後でコードに必要な変数を宣言します。

1.2 HTMLフォームの5つの入力ボックスに5つの等級を求めるメッセージを表示します。また、1行に1つの等級を入力する必要があることを説明してください。 1.3 5つのフィールドすべてが正しく入力され、等級境界内の値でない限り、フォームを提出することはできません。

1.4 doループ制御プログラムフロー):

1.4.1入力フォームからグレードを変数に読み込みます。 1.4.2(論理演算子を使用)条件文(If)を使用して、グレードが0〜101の範囲外かどうかをチェックし(ブールORを使用)、それが真であればエラーメッセージを出力します。 1.4.3グレードが101でない場合は、合計を

に追加してください。 doループを終了してグレードがチェックされていない101

1.5平均グレードを計算し、結果を適切なメッセージで表示します。

私のコードはこれです:私はフォームを送信すると Assess1Grades.php

<!doctype html> 
<html> 
    <head> 
     <title>Grade Assessor</title> 
    </head> 

    <body> 
     <h2>Grade Assessor<h2> 
     <table border="1"> 
      <tr> 
       <td> 
        <table> 
         <form action="grades.php" method="post"> 
          <tr> 
           <td> 
            Enter 5 grades. One per each line: 
           </td> 
          </tr> 
          <tr> 
           <td> 
            Grade 1: <input type="number" name="grade1" required> 
           </td> 
          </tr> 
          <tr> 
           <td> 
            Grade 2: <input type="number" name="grade2" required> 
           </td> 
          </tr> 
          <tr> 
           <td> 
            Grade 3: <input type="number" name="grade3" required> 
           </td> 
          </tr> 
          <tr> 
           <td> 
            Grade 4: <input type="number" name="grade4" required> 
           </td> 
          </tr> 
          <tr> 
           <td> 
            Grade 5: <input type="number" name="grade5" required> 
           </td> 
          </tr> 
          <tr> 
           <td align="center"> 
            <input type="submit"> 
           </td> 
          </tr> 
         </form> 
        </table> 
       </td> 
      </tr> 
     </table> 
    </body> 
</html> 

grades.php

<!doctype html> 
<html> 

    <head> 
     <title>Grade Assessor</title> 
    </head> 

    <body> 
     <h2>Grade Assessor<h2> 
     <table border="1"> 
      <tr> 
       <td> 
        <table> 
         <tr> 
          <td> 
           The Average grade is: 
          </td> 
          <td> 
           <?php 
           function workOutGradeAv() { 
            $averagegrade=$grades/5; 
            echo "$averagegrade"; 
           } 
           $grades=0; 
           do { 
            if ($_Post["grade1"] < 0 or $_Post["grade1"] > 101) { 
             echo "Error! Check Input."; 
            } elseif ($_Post["grade2"] < 0 or $_Post["grade2"] > 101) { 
             echo "Error! Check Input."; 
            } elseif ($_Post["grade3"] < 0 or $_Post["grade3"] >101) { 
             echo "Error! Check Input."; 
            } elseif ($_Post["grade4"] < 0 or $_Post["grade4"] >101) { 
             echo "Error! Check Input."; 
            } elseif ($_Post["grade5"] < 0 or $_Post["grade5"]>101) { 
             echo "Error! Check Input."; 
            } else { 
             $grades = $grades + $_Post["grade1"] + $_Post["grade2"] + $_Post["grade3"] + $_Post["grade4"] + $_Post["grade5"]; 
            } 
           } 
           while ($_Post["grade1"]!= 101); 
           workOutGradeAv(); 
           ?> 
          </td> 
         </tr> 
        </table> 
       </td> 
      </tr> 
     </table> 
    </body> 
</html> 

は、出力は単に「平均グレードがある」され、何の結果はありません。私は間違って何をしていますか?

おかげで

+0

ペドロ、$ _Postとは何ですか? $ _POSTは未定義です...あなたは$ _POST(すべて大文字)を使用する必要があります。私はエラー報告をオンにしていないと仮定します。エラー報告をオンにしてください。 –

+0

まず、$ _Postを使用しています。$ _POSTにする必要があります。 PHPは大文字小文字を区別しますhttp://php.net/manual/en/reserved.variables.post.php – valicu2000

+1

私のブラウザをクラッシュさせていただきありがとうございます... do whileループは何をしていますか? –

答えて

1

あなたは$_POST$_Postを交換不要do whileループ

2)を取り外しgrades.php

1)で複数のエラーがあります。 PHPは大文字と小文字を区別する言語です。

3)関数でグレードを表示するには、gradesをグローバルとして宣言する必要があります。または、パラメータとして渡します。

<!doctype html> 
<html> 

<head> 
<title>Grade Assessor</title> 
</head> 

<body> 
<h2>Grade Assessor<h2> 
<table border="1"> 
<tr> 
<td> 
<table> 
<tr> 
<td> 
The Average grade is: 
</td> 
<td> 
<?php 

function workOutGradeAv($grades) { 

$averagegrade=$grades/5; 
echo "$averagegrade"; 
} 
$grades=0; 

if ($_POST["grade1"] < 0 || $_POST["grade1"] > 101) { 
echo "Error! Check Input."; 
} elseif ($_POST["grade2"] < 0 or $_POST["grade2"] > 101) { 
echo "Error! Check Input."; 
} elseif ($_POST["grade3"] < 0 or $_POST["grade3"] >101) { 
echo "Error! Check Input."; 
} elseif ($_POST["grade4"] < 0 or $_POST["grade4"] >101) { 
echo "Error! Check Input."; 
} elseif ($_POST["grade5"] < 0 or $_POST["grade5"]>101) { 
echo "Error! Check Input."; 
} else { 
$grades = $grades + $_POST["grade1"] + $_POST["grade2"] + $_POST["grade3"] + $_POST["grade4"] + $_POST["grade5"]; 
} 

workOutGradeAv($grades); 
?> 
</td> 
</tr> 
</table> 
</td> 
</tr> 
</table> 
</body> 
</html> 
+0

ありがとうございます。しかし、基準の1つは、 'do loop'を行うことです。 1.4 \tプログラムフローを制御するdoループを使用します。 1.4。1 \tは、入力フォームからグレードを変数に読み込みます。 1.4.2 \t(論理演算子を使用)グレードが0〜101の範囲外かどうか(ブールORを使用するかどうか)をチェックし、それが真である場合はエラーメッセージを出力します。 1.4.3 \tグレードが101でない場合は、合計を に追加してください。 –